[英]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.