java中获取泛型的实际类型,请问如何做? (请不要简单的说要用反射机制哈,描述下具体如何实施)

2024-12-18 22:15:49
推荐回答(2个)
回答1:

public void showType(){
System.out.println(T.getClass().getName());}
这个T是泛型,这直接用是不能的,它只能用于类声明(你的例子),类变量声明,方法声明和参数声明。
其实只用getClass()就够了
完善下你的类如下
class A{
T tt;
A(T t){
this.tt = t;
}
public void showType(){
System.out.println(t.getClass().getName());
}
public static void main(String args[]){
A a1 = new A(new B());
a1.showType(); // 这里打印出T(或者tt)的类型是B
A a2 = new A(new C());
a2.showType(); // 这里打印出T(或者tt)的类型是C
}

}

回答2:

类型应该是一种消息信息,
通常你-编程者知道是B或C,能逻辑判断就够了。不一定非要打印或显示出来的。
如果要打印,还可以
public void showType(){
System.out.println(T.getClass().getName());}