作者:麦豪小仙 | 来源:互联网 | 2023-02-04 10:44
我正在使用以下方法:
public void m(List extends Object[]> objs){
objs.stream()
.map(oa -> oa[0]) //compile error
//array type expected
.forEach(System.out::println);
}
DEMO
为什么不起作用?我认为扩展数组的所有东西都可以看作是一个数组.实际上我可以length
从阵列中获得.
1> Bohemian..:
实际上没有这样的课程延伸Object[]
; 每个数组都有一个固定的类型和它自己的类,例如MyClass[].class
你应该使用一个类型化的方法:
public void m(List objs){
objs.stream()
.map(oa -> oa[0]) // no compile error
.forEach(System.out::println);
}
@Bohemian nit它不是一个排除它的实现原因,是规范所禁止的.(未能在我的手机上找到JLS的相关部分......)