Java 如何扩展IntelliJ IDEA CE代码评估功能?

Java 如何扩展IntelliJ IDEA CE代码评估功能?,java,debugging,intellij-idea,evaluation,on-the-fly,Java,Debugging,Intellij Idea,Evaluation,On The Fly,我正在使用IntelliJ IDEA Community Edition 10开发一个JavaSE项目 我的应用程序需要很长时间才能启动,因此我首选的调试代码的方法是启动->在断点处停止->打开代码评估窗口->键入一些代码,然后查看它返回什么 但是,当我的代码返回一个大型数组/对象集合时,问题就出现了。我想要的是按字段值或其他条件过滤对象 我可以使用Apache Commons Collections或Google Guava进行过滤,但IntelliJ IDEA的代码评估不允许动态创建匿名类,

我正在使用IntelliJ IDEA Community Edition 10开发一个JavaSE项目

我的应用程序需要很长时间才能启动,因此我首选的调试代码的方法是启动->在断点处停止->打开代码评估窗口->键入一些代码,然后查看它返回什么

但是,当我的代码返回一个大型数组/对象集合时,问题就出现了。我想要的是按字段值或其他条件过滤对象

我可以使用Apache Commons Collections或Google Guava进行过滤,但IntelliJ IDEA的代码评估不允许动态创建匿名类,我需要定义谓词

我也可以使用,但是我庞大的集合中的对象类被声明为final,我不能改变这一点,因此lambdaJ不能为其操作扩展这些类

我也尝试使用,但它要求我将代码作为字符串传递,这会扼杀IDEA的代码完成。此外,bsh不能在正在调试的进程内使用局部变量。最后,每次我都必须指定完整的类名


有人能帮我找到解决这个问题的办法吗?扩展IntelliJ IDEA的代码评估以支持匿名类可能是一种神奇的方法,或者是另一种过滤集合的方法,在这种情况下也可以使用。

您仍然可以使用lambdaj,方法是使用您自己的转换器、聚合器和匹配器来扩展其功能,如下所述:


您可以编写自己的方法来按自己的方式过滤结果。只要在开始调试之前编译它们,就可以在评估中使用它们。e、 g

 MyFilter.filter(result()).from(1).to(10) // etc

谢谢@MarioFusco和@PeterLawrey,但这样我需要在启动程序之前创建这些过滤设施。在我的例子中,重要的是我启动程序,然后开始试验调用方法并查看结果。如果您有类似于我在这里描述的问题,我建议您对此进行投票。这并不完全相同,但这是朝着正确方向迈出的一步。