在泛型编程时,使用部分限定的形参时,<? super T>和<? extends T>的使用场景容易混淆,PECS原则可以帮助我们很好记住它们: 生产者(Producer)使用extends,消费者(Consumer)使用super. 留下一段代码加深印象(来自JDK 8 Collections.copy()源码) /** * Copies all of the elements from one list into another. After the * operation,
Class <T> entityClass = (Class <T>) ((ParameterizedType) getClass().getGenericSuperclass()).getActualTypeArguments()[0]; getGenericInterfaces()和getGenericSuperclass() getInterfaces()和getSuperclass() 先来看看这两个方法都是干什么用的: 1. public Type getGenericS
在学习数组之前先学习java.util.Arrays类中的一个静态方法Arrays.toString(). 该方法可以将传入的数组格式化为一个字符串,便于我们查看数组内容,例如: import java.util.Arrays; public class Dome001_Array { public static void main(String[] args) { int[] arr = new int[5]; // 定义一个数组 for (int i = 0; i < 5; i++) { /
E – Element (在集合中使用,因为集合中存放的是元素) T – Type(Java 类) K – Key(键) V – Value(值) N – Number(数值类型) ? – 表示不确定的java类型(无限制通配符类型) S.U.V – 2nd.3rd.4th types Object – 是所有类的根类,任何类的对象都可以设置给该Object引用变量,使用的时候可能需要类型强制转换,但是用使用了泛型T.E等这些标识符后,在实际用之前类型就已经确定了,不需要再进行类型强制转换. ?