IntelliJ中的“评估表达式”为创建的流抛出NoSuchMethodError

时间:2017-06-02 07:57:29

标签: java intellij-idea nosuchmethoderror

在IntelliJ IDEA的Evaluate Expression窗口中调试期间,我从数据库中获取了大量元素。

dao.getAll(Product.class);

这将返回List<Product>。我想过滤这个集合,并使用Java 8 Stream API在其中查找一些特定的项目。

dao.getAll(Product.class).stream()
        .filter(Product::isActive)
        .collect(Collectors.toList());

但即使方法存在于给定的类中,我也会得到NoSuchMethodError

NoSuchMethodError when debugging

如果在代码中而不是在“评估表达式”窗口中创建List<Product>,则它正在运行。使用哪个实体以及调用哪个方法无关紧要。它总是表现得一样。

这种ad-hoc创建的流的预期行为是否有解决方法?

编辑: 从异常及其堆栈跟踪中找不到什么方法并不明显。 异常消息:

java.lang.NoSuchMethodError: a.b.MyClass.access$000(La/b/MyClass;)La/b/MySuperClass;

Stacktrace只能在我的断点所在的代码中找到一个位置。 如上所述,调用哪个实体的方法无关紧要。当从Expression Evaluation窗口调用包含dao.getAll(Product.class)的所有内容时,我总是收到此错误。在类文件中创建dao.getAll(Product.class)列表并在Expression Evaluation窗口中获取并过滤流时,它可以正常工作。 希望它有意义。

0 个答案:

没有答案