Thy*_*hys 3 java generics reflection
我有一个返回泛型类型的方法,有没有办法检索值<T>
而不必通过参数给出这个?
public <T> T getObject(String location, String method)
{
// ! Here I want to retrieve the class of T
Class<?> requestedClass = getMeTheClassThatWasRequested();
return requestedClass;
}
Run Code Online (Sandbox Code Playgroud)
有没有办法做到这一点?
不,你必须明确传入类型信息.Java在编译时丢弃所有类型信息.这称为"类型擦除".这也是为什么集合对象上的toArray方法需要类型为T的数组才能返回类型为T的数组的原因.它仅将该输入数组用于类型信息.