在方法中获取请求泛型类型

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)

有没有办法做到这一点?

Pac*_*ace 9

不,你必须明确传入类型信息.Java在编译时丢弃所有类型信息.这称为"类型擦除".这也是为什么集合对象上的toArray方法需要类型为T的数组才能返回类型为T的数组的原因.它仅将该输入数组用于类型信息.