簡體   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