我試着做以下,但它不會編譯並一直說「博}這種T」是不相容如何檢查一個對象是否爲類c的類型?
public retur boolean (BaseObject bo,String text, Class<?> T){
return (bo.getText().equals(text) && bo instanceOf T)
}
我想,以確保得到的是相同的,微博必須是類型T.
哦是的我如何確保「T」擴展BaseObject?
我試着做以下,但它不會編譯並一直說「博}這種T」是不相容如何檢查一個對象是否爲類c的類型?
public retur boolean (BaseObject bo,String text, Class<?> T){
return (bo.getText().equals(text) && bo instanceOf T)
}
我想,以確保得到的是相同的,微博必須是類型T.
哦是的我如何確保「T」擴展BaseObject?
T.isAssignableFrom(bo.getClass());
有關詳細信息,請參見the javadoc。
類型必須相同。我擔心如果bo是類> T的孩子,它將返回true ..我應該使用T.instanceOf(bo.getClass());代替? – seesee 2012-07-17 11:58:15
然後比較類:'bo.getClass()== T'。但是這與'instanceof'不同。 – 2012-07-17 12:19:46
public boolean test(BaseObject bo,String text, Class<? extends BaseObject> clazz){
return (bo.getText().equals(text) && clazz.isAssignableFrom(bo.getClass()));
}
如果'T'擴展了'BaseObject',那麼'BaseObject'不能是'T'的實例。 – Tharwen 2012-07-17 11:39:36
不要將兩個問題發佈到一個問題中。將第二個問題編輯到另一個帖子中。 – millimoose 2012-07-17 11:39:51
@Tharwen除非'T'是'BaseObject'。 (如果按照Java的通用約束使用的「擴展」的含義,即「可分配給」)。 – millimoose 2012-07-17 11:41:03