获取父类泛型

    xiaoxiao2021-03-25  58

    Car.java

    package com.heima.test; public class Car { private String brand; private int wheel; public String getBrand() { return brand; } public void setBrand(String brand) { this.brand = brand; } public int getWheel() { return wheel; } public void setWheel(int wheel) { this.wheel = wheel; } } Food.java

    package com.heima.test; public class Food { private String color; private String kind; public String getColor() { return color; } public void setColor(String color) { this.color = color; } public String getKind() { return kind; } public void setKind(String kind) { this.kind = kind; } } User.java

    package com.heima.test; public class User { private String name; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } } Father.java

    package com.heima.test; import java.lang.reflect.ParameterizedType; import java.lang.reflect.Type; public class Father<T,V,M> { private Class entityClass; private Type[] ts; protected Father() { ParameterizedType type = (ParameterizedType) this.getClass() .getGenericSuperclass(); ts = type.getActualTypeArguments(); Class entity = (Class) ts[0]; this.entityClass = entity; } public Class getEntityClass() { return entityClass; } public void setEntityClass(Class entityClass) { this.entityClass = entityClass; } public Type[] getTs() { return ts; } public void setTs(Type[] ts) { this.ts = ts; } } Son.java

    package com.heima.test; public class Son extends Father<User,Food,Car>{ } Test.java

    package com.heima.test; import java.lang.reflect.Type; public class Test { public static void main(String[] args) { Son s=new Son(); Type[] ts=s.getTs(); Class c=s.getEntityClass(); for (Type type : ts) { System.out.println(type); } System.out.println("........"); System.out.println(c); } } 运行结果:

    class com.heima.test.User class com.heima.test.Food class com.heima.test.Car ........ class com.heima.test.User

    转载请注明原文地址: https://ju.6miu.com/read-32461.html

    最新回复(0)