Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/219.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何获取泛化对象中使用的类_Java_Android - Fatal编程技术网

Java 如何获取泛化对象中使用的类

Java 如何获取泛化对象中使用的类,java,android,Java,Android,我有下面的方法,它需要一个带有参数化类的对象。请帮助我找到T的类。例如,我已经返回了JsonObject.class private static <T> Class<T> getType(me.yoctopus.util.Response<HttpResponse<T>, JSONException> response) { /* Type type = ((ParameterizedType) response

我有下面的方法,它需要一个带有参数化类的对象。请帮助我找到T的类。例如,我已经返回了JsonObject.class

private static <T> Class<T> getType(me.yoctopus.util.Response<HttpResponse<T>, JSONException> response) {

   /*
    Type type = ((ParameterizedType) response
            .getClass()
            .getGenericSuperclass()).getActualTypeArguments()[0];
    Type httResponse = ((ParameterizedType) type
            .getClass()
            .getGenericSuperclass()).getActualTypeArguments()[0];
   return (Class<T>) httResponse;*/
   return (Class<T>) JSONObject.class;


}
私有静态类getType(me.yoctopus.util.Response){
/*
类型类型=((ParameteredType)响应
.getClass()
.getGenericSuperclass()).getActualTypeArguments()[0];
类型httResponse=((参数化类型)类型
.getClass()
.getGenericSuperclass()).getActualTypeArguments()[0];
返回(类)HTT响应*/
返回(Class)JSONObject.Class;
}

我需要确定并返回类T

非常确定您不能这样做。调用方需要提供类型令牌(例如
class
)。除非类型在编译时已知,否则无法从类型参数中恢复类对象,这里没有该类型。我很确定这个问题是重复的,但是我很难找到一个好的重复来结束它。如果我把签名改成这个
类getType怎么样(me.yoctopus.util.responsed您想获取泛型类还是它的名称?@yoctopus:这没有帮助,因为您无论如何都无法获取
对象。不知何故,此代码的调用者需要传递一个表示它想要返回的类型的对象。