1
請原諒我提出這樣一個問題,但過去幾年我一直在做C#,直到最近,所以我對Java中的類型擦除泛型與C#中泛型的直覺版本相比有點生疏。Java反射無論如何比較類<?>或類型到類<T>?
我有像這樣的情況:
public void doSomething(Class<T> classType) {
for (Method method : classType.getMethods()) {
for (Class<?> parameterClass : method.getParameterTypes()) {
// How do I compare parameterClass to classType or to String.class?
}
}
}
由於parameterClass是Class則不明類別類型因此它不能在運行時確定的?他們是否存在一種方式來執行這種比較?我再次提醒,我多年來沒有使用Java泛型,而且我一直在閱讀它,並且仍然感到困惑。
哦,等等 - 你只需要比較類型; 'getGenericParameterTypes()'是當你真的想確定類型參數時,假設它是可用的。 – 2011-05-26 12:40:47
這將返回Type實現的數組。爲什麼這是一個更好的主意? – 2011-05-26 12:42:22
這是我困惑的地方,你怎麼能比較類型還不能確定類型參數? – 2011-05-26 12:43:33