将 UnaryOperator 实现为匿名时出现 NoClassDefFoundError class
NoClassDefFoundError when implementing a UnaryOperator as an anonymous class
我解决的问题如下:
Given a list of non-negative integers, return an integer list of the
rightmost digits.
rightDigit([1, 22, 93]) → [1, 2, 3] rightDigit([16, 8, 886, 8, 1]) →
[6, 8, 6, 8, 1] rightDigit([10, 0]) → [0, 0]
问题本身很简单,我使用单行流操作解决了这个问题。
return nums.stream().map(e -> e % 10).collect(Collectors.toList());
然而,为了测试我对 Anonymous classes 的理解,我决定使用 Anonymous class 来实现它,想出的是:
public List<Integer> rightDigit(List<Integer> nums) {
nums.replaceAll(new java.util.function.UnaryOperator<Integer>() {
public Integer apply(Integer n) {
return new Integer(n.intValue() % 10);
}
});
return nums;
}
我的问题是出现了 NoClassDefFoundError 错误,我无法自行解决。我很高兴知道我在这里做错了什么,谢谢。
编译正确。
看起来 UnaryOperator 的定义不在您的类路径中。
能否请您分享:完整的堆栈跟踪,java --version
以及您如何编译和 运行 它。
我解决的问题如下:
Given a list of non-negative integers, return an integer list of the rightmost digits.
rightDigit([1, 22, 93]) → [1, 2, 3] rightDigit([16, 8, 886, 8, 1]) → [6, 8, 6, 8, 1] rightDigit([10, 0]) → [0, 0]
问题本身很简单,我使用单行流操作解决了这个问题。
return nums.stream().map(e -> e % 10).collect(Collectors.toList());
然而,为了测试我对 Anonymous classes 的理解,我决定使用 Anonymous class 来实现它,想出的是:
public List<Integer> rightDigit(List<Integer> nums) {
nums.replaceAll(new java.util.function.UnaryOperator<Integer>() {
public Integer apply(Integer n) {
return new Integer(n.intValue() % 10);
}
});
return nums;
}
我的问题是出现了 NoClassDefFoundError 错误,我无法自行解决。我很高兴知道我在这里做错了什么,谢谢。
编译正确。
看起来 UnaryOperator 的定义不在您的类路径中。
能否请您分享:完整的堆栈跟踪,java --version
以及您如何编译和 运行 它。