获取父类泛型

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





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值