<>只是泛型定义的规定,因为其他括号都有特定含义了,所以选了<>表示泛型的定义
泛型限定就是告诉编译器去检查类型的匹配,在运行的时候虚拟机会自动去掉<>的内容
- public abstract class AbstractHumanFactory{
- public abstract <T extends Human>T createHuman(Class<T> c);
- }
复制代码
代码的意思是 创建一个抽象Human工厂类 定义一个制造Human的函数
传入的参数是Class类型----JDK1.5后定义Class接口定义成Class<T> ----为什么是Class<T>---这个应该是和类的动态加载有关
至于<T extends Human>T
意思是这个函数的返回值类型是T 这个类型限定为T必须是继承了Human的类型
在函数上泛型限定必须定义在返回值类型之前
不知道这样是不是理解一点了 |