Java获取泛型的实际类型

1. 创建包含泛型的父类

public abstract class Father
{
    public abstract String className();
}
2. 创建子类继承父类


public class Children extends Father
{
    @Override
    public String className()
    {
        Class type = (Class) ((ParameterizedType) this.getClass().getGenericSuperclass()).getActualTypeArguments()[0];
        return type.getName();
    }
}

3. 测试

public void testT()
{
        Children children = new Children();
        System.out.println(children.className());
}

4.输出

com.bibabo.framework.entity.WXStudent

注意:java中的泛型采用擦拭法。无法得到自己本身的泛型。而调用getGenericSuperclass()方法得到的是父类的泛型。 

你可能感兴趣的:(Java高级)