Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.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 如何堆栈getClass()_Java - Fatal编程技术网

Java 如何堆栈getClass()

Java 如何堆栈getClass(),java,Java,为什么第一行有效,而第二行无效: Class<? extends Class> c1 = (new Object()).getClass().getClass(); Class<? extends Class<? extends Class>> c2 = (new Object()).getClass().getClass().getClass(); Class类型不匹配:无法从类转换为 API文档中的类,用于 实际结果类型

为什么第一行有效,而第二行无效:

Class<? extends Class> c1                  = (new Object()).getClass().getClass();
Class<? extends Class<? extends Class>> c2 = (new Object()).getClass().getClass().getClass();
Class
类型不匹配:无法从类转换为
API文档中的类,用于

实际结果类型是类,其中| X |是对调用getClass的表达式的静态类型的擦除。


因此
(newobject()).getClass()将返回一个
类Java使用类型擦除。世上没有这样的事

Class<? extends Class<? extends Class>>

应返回
true
。因此,
getClass()
也应该具有相同的类型:
classi我的问题是,您在这里实际想要实现什么?我很难把它和现实世界的编程问题联系起来。。。假设
(新对象()).getClass().getClass()
(新对象()).getClass().getClass().getClass()
实际上是同一个对象。@StephenC你说得对。此时,我正在尝试在通用方法中调用getClass(),该方法的行为可以预测,无论将哪个类作为参数传递。从你的帖子中了解到一个已经是Class类型的对象上的getClass()返回它自己是很有帮助的。我开始理解了。因此,如果(新对象()).getClass()是Class@Mishax是的,
Class<? extends Class<? extends Class>> c2 = 
(Class<? extends Class<? extends Class>>) (newObject()).getClass().getClass().getClass();
Class<? extends Class<? extends Class>>
ArrayList<Integer> inta = new ArrayList<Integer>();
ArrayList<Double> doua = new ArrayList<Double>();
System.err.println(inta.getClass() == doua.getClass());
Class<ArrayList<Double>> dacls = (Class<ArrayList<Double>>) doua.getClass();