获取泛型类型的“真实”类

2024-01-14

如何获得泛型类型的“真实”类?

例如:

public class MyClass<T> {
    public void method(){
        //something

        System.out.println(T.class) //causes a compile error, I wont the class name

        //something
    }
}

如果 T = 整数

Output:

java.lang.Integer

如果 T = 字符串

Output:

java.lang.String

Thanks


如果您的类中有一个 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;
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

获取泛型类型的“真实”类 的相关文章

随机推荐