预期的数组类型[编译错误]

圣安东尼奥:

我正在使用以下方法:

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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章