解决办法:利用数组构造器
问题描述
比如表达式new T[n],这样创建会产生错误的,因为这会被改为new object[n]
例如:我们需要建立一个person对象数组,Stream接口有一个toArray方法可以实现返回object数组
Object[] person =Stream.toArray();
但是我们想要得到的是一个person引用数组,而不是Object引用数组
流库利用构造器可以解决这个问题,可以把person[]::new传入toArray方法:
Person[] person = stream.toArray(person[]::new);
toArray调用这个构造器来调用得到一个正确类型的数组,然后填充这个数组并返回