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