由于以下原因,Java类Class<T>
为Generic会引起混淆。类<T>如何能通用?
试想一类Cake<T>{}
所以,你可以创建 new Cake<Pineapple>
和new Cake<Apple>
等 如果每个类ex Apple
有一个参数化类对象,如果类Class
是通用的,那么它似乎是一个可能性,创建Apple<Something>
或Integer<Something>
,这没有任何意义。
我不知道我在这里错误地感知到了什么。它似乎是成立的,但更深层次的水平与上述水平相同。
假设下面通用类
public class Cake<T> {
T cakeType;
void setCakeType(T cakeArg){
this.cakeType = cakeArg;
}
void doStuff(){
System.out.println(cakeType.toString());
}
}
假设菠萝非通用类作为参数类型为蛋糕
public class Pineapple {
@Override
public String toString() {
return "I am a Pineapple";
}
}
如果类Class
不是通用的,然后通过直觉,会有Pineapple Class
对象 但类Class<T>
本身是通用的。然后,似乎有可能创建Pineapple
的参数化类对象,即Pineapple<Something>
。
基础假设:每个类只有一个Class
对象。关于参数化有什么意义?
我不明白你的问题,你可以包含一些代码吗? –
“类”中的“T”不对应于“蛋糕”中的“T”。前者表示类本身的编译时类型;意思是“Pineapple.class”是“Class ”的一个实例。 –
shmosel
“如果class class是通用的,那么创建Apple或Integer 似乎是一种可能性。”您从开始的位置如何到达这种可能性并不清楚。 –
pvg