我希望您能帮助我,因为我是Java-8的新手
public class main {
public static void main(String[] args){
ArrayList<Double> coll1 = new ArrayList<>();
coll1.add(2.5);
coll1.add(3.5);
printColl(multi(coll1));
}
public static ArrayList<Double> multi(ArrayList<Double> coll1) {
return coll1.replaceAll(aDouble -> aDouble*2.0);
}
public static void printColl(ArrayList<?> coll) {
coll.stream().forEach(System.out::println);
}
}我有以下问题:我有一个有2个Double的ArrayList,我正试图用"multi“方法修改它。我使用"replaceAll“方法通过lambda-expression更改单个值,但得到一个错误。
错误是“类型不兼容。必需: java.util.List Found:空”
我希望你能帮助我,因为我真的不知道为什么我会得到这个错误。
发布于 2016-04-24 17:51:04
让我们来看看replaceAll方法签名:
public void replaceAll(UnaryOperator<E> operator)
正如您所看到的,它没有返回任何内容,这意味着它修改了现有的ArrayList。
因此,在您的情况下,您需要执行以下操作:
public static ArrayList<Double> multi(ArrayList<Double> coll1) {
coll1.replaceAll(aDouble -> aDouble*2.0);
return coll1;
}https://stackoverflow.com/questions/36789983
复制相似问题