有没有办法可以避免类型擦除并获得类型参数的访问权限?
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();
...
}
}
Run Code Online (Sandbox Code Playgroud)
我需要知道T并用它做事.是否可能,如果是这样,如果不在构造函数中传递类或参数之外的任何地方,如何才能完成?
编辑:这个问题的主要目的是找出是否有任何关于类型擦除的实用方法.