个人理解有限,也许还有其他妙用,或有遗漏或不太正确地方请指正。 List<?>这种写法的妙用在于数据变为唯一性,保护数据。因只添加一次数据,不得在添加数据,只能读取数据,永久删除数据。从这使得它实际应用范围变得更广,以下是代码参考: 1、用数组形式一次把所有数据进入List<?>,List<?>不能单独添加数据如: List<Integer> list = new ArrayList<Integer>(); list.add(1);list.add(2); List<?> list2 = new ArrayList<>(); list2 = list; //数据进入 list2.add(1); //报错 2、List<?> 只能读取数据或者删除(如果删除了则无法再添加新数据如: System.out.println(list2.toString()); //读取所有数据 结果1,2 System.out.println(list2.get(0)); //读取一条数据 结果1 list2.remove(0); //按删除数据(在这里按下标进行删除) 结果:2 list2 = list; //重新加载数据再次进入 ,你会发现 结果:数据只有一条 List<Integer> list6 = new ArrayList<>(Arrays.asList(4, 5, 6)); //可以添加新数据上面代码是添加新数据,原来的数据将不存在,新数据所替代 list2 = list6