如何获得通用类型的“真实”类?
例如:
public class MyClass<T> { public void method(){ //something System.out.println(T.class) //causes a compile error,I wont the class name //something } }
如果T =整数
输出:
java.lang.Integer
如果T = String
输出:
java.lang.String
谢谢
解决方法
如果您的类中有一个类型为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; } }