我正在使用以下方法:
public void m(List<? extends Object[]> objs){
objs.stream()
.map(oa -> oa[0]) //compile error
//array type expected
.forEach(System.out::println);
}
Run Code Online (Sandbox Code Playgroud)
为什么不起作用?我认为扩展数组的所有东西都可以看作是一个数组.实际上我可以length从阵列中获得.
实际上没有这样的课程延伸Object[]; 每个数组都有一个固定的类型和它自己的类,例如MyClass[].class
你应该使用一个类型化的方法:
public <T> void m(List<T[]> objs){
objs.stream()
.map(oa -> oa[0]) // no compile error
.forEach(System.out::println);
}
Run Code Online (Sandbox Code Playgroud)