有沒有一種方法可以避免類型擦除和訪問類型參數?避免Java類型擦除
public class Foo<T extends Enum<?> & Bar> {
public Foo() {
// access the template class here?
// i.e. :
baz(T.class); // obviously doesn't work
}
private void baz(Class<T> qux) {
// do stuff like
T[] constants = qux.getEnumConstants();
...
}
}
我需要知道的關於T
,並做它的事情。是否有可能,如果是的話,怎麼可以做到沒有傳遞類的構造函數或任何地方除了參數?
編輯:這個問題的主要目的是找出是否有周圍型擦除任何實際的方式。
+1 Yep - 這是另一種基於反射的替代方法,如果您希望繼承子類來傳遞'Class'對象。 –