如何获得泛型类型的"真实"类?
例如:
public class MyClass<T> {
public void method(){
//something
System.out.println(T.class) //causes a compile error, I wont the class name
//something
}
}
Run Code Online (Sandbox Code Playgroud)
如果T =整数
输出:
java.lang.Integer
Run Code Online (Sandbox Code Playgroud)
如果T = String
输出:
java.lang.String
Run Code Online (Sandbox Code Playgroud)
谢谢
Kal*_*Kal 22
如果你的类中有一个类型为T的实例变量,并且碰巧设置了它,那么你可以打印该变量的类.
public class Test<T> {
T var;
public static void main(String[] args) {
Test<Integer> a = new Test<Integer>();
System.out.println(a.boo());
a.setVar(new Integer(10));
System.out.println(a.boo());
}
public String boo() {
if (var == null) {
return "Don't know yet";
}
return var.getClass().getSimpleName();
}
public void setVar(T var) {
this.var = var;
}
public T getVar() {
return var;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
21364 次 |
| 最近记录: |