泛型
- 上界匹配 ? extends Number
- 下界匹配 ? super Number
getSimpleName 不包括包名
getName 会包括包名
常和反射联合使用,做框架
Type是一个标识符接口,通过getClass().getGenericSuperclass()
获得
我们需要将此强制转型为其的子类ParameterizedType
类来使用
例如有一个框架
public class Dao<T,PK extends Number>{
public Dao(){
ParameterizedType parameterizedType = (ParameterizedType) getClass().getGenericSuperclass()
Type[] types =parameterizedType.getActualTypeArguments();//两个泛型,T和PK
String name = types[0].getSimpleName();//获得传入的T类的简单名字
}
}
//通过继承来实现不同类的代码封装
public class StudentDao extends Dao<Student,Integer>{
}
//上面的name显示的就是Student