我正在使用以下方法:
public void m(List<? extends Object[]> objs){
objs.stream()
.map(oa -> oa[0]) //compile error
//array type expected
.forEach(System.out::println);
}
为什么不起作用?我认为扩展数组的所有内容都可以视为数组。其实我可以length
从数组中获取。
实际上没有这样的扩展类Object[]
; 每个数组都有一个固定的类型和自己的类,例如MyClass[].class
您应该使用类型化方法:
public <T> void m(List<T[]> objs){
objs.stream()
.map(oa -> oa[0]) // no compile error
.forEach(System.out::println);
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句