繁体   English   中英

在Java中将类型作为参数传递的最佳实践

[英]Best practice for passing a type as a parameter in Java

我有一个类,应该在类中接收一些IStratagy接口的实现类型(具体类类型),并创建这些已接收类型的对象。 像这样:

Class SomeClass {
    public SomeClass(Class<IStrategy> strategyClass) {
        strategyClass.newInstance();
        // catch nasty reflection exceptions...
    }
}

我想确保该参数实现IStrategy。 我可以先收到一个参数“ IStrategy concreteStrategy”,然后再收到concreteStrategy.getClass()。newInstance(),但仍在反思,我想避免这种情况。Java中此问题的最佳实践是什么?

我认为您应该使用以下方法:

if( IStrategy.class.isAssignableFrom(strategyClass) ) {
          .....
}

基本上,这类似于instanceof,但是没有创建具体策略实施的实际实例。

希望这可以帮助

为什么不这样简单:

Class SomeClass {
   public SomeClass( IStrategy strategyClass ) {
      ...
   }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM