1

我正在使用 IntelliJ IDEA Community Edition 10 开发 Java SE 项目。

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

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

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

我也可以使用lambdaJ,但是我的庞大集合中的对象类被声明为 final (我无法更改),因此 lambdaJ 无法扩展这些类以进行操作。

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

任何人都可以帮助找到解决此问题的方法吗?扩展 IntelliJ IDEA 的代码评估以支持匿名类可能是一种神奇的方式,或者是在这种情况下过滤集合的另一种方式。

4

2 回答 2

0

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

http://code.google.com/p/lambdaj/wiki/LambdajExtensibility

于 2011-04-19T07:19:04.857 回答
0

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

 MyFilter.filter(result()).from(1).to(10) // etc
于 2011-04-19T08:42:49.520 回答