/***获取字段类型。如果是复合对象,则获取泛型类型**@paramfield*@return*/privatestaticclassgetfieldclass(fieldfield){classfieldclazz}=字段.gettype()如果(fieldclazz.isassignablefrom文件(list.class类)){类型fc=field.getgenerictype类型()//关键是获取泛型类型if(参数化类型的fc实例)//如果是泛型参数类型{参数化类型pt=(参数化类型)fcfieldclazz=(类)pt.getactualtypearguments参数()[0]//获取泛型中的类类型对象。}}returnfieldclazz}就在最近,我写了相关的代码供参考
这是属于java泛型的。在当前版本的java中,所有容器类都是通过更改为泛型来实现的。实际上,可以将尖括号中的内容理解为参数,它可以表示任何类。当然,您可以按位置限制条件,例如上限条件、下限条件等
您的示例显示列表中只能存储用户类型的对象。
java中的泛型非常棒。这就是为什么我经常讨厌java的原因之一。
让我们先谈谈泛型的主要功能:
1。加强类型安全。例如,如果定义了一个列表
2.提高性能,减少类型转换和装箱次数。
让我们来谈谈java泛型的奇妙之处:
1。java泛型实现的原理称为类型擦除。无论代码中如何定义泛型,它们在编译后都会成为对象,因此在运行时无法实现类型安全。而且,java编译器不够聪明,很容易被欺骗。例如,调用第三方接口返回list
2.由于类型被删除,类型转换是不可避免的,所以使用泛型和非泛型不会改变性能。