繁体   English   中英

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

[英]How can I extend the IntelliJ IDEA CE code evaluation feature?

我正在使用IntelliJ IDEA社区版10来开发Java SE项目。

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

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

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

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

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

谁能帮助找到解决该问题的方法? 扩展IntelliJ IDEA的代码评估以支持匿名类可能是一种神奇的方法,或者是一种在这种情况下可用的筛选集合的另一种方法。

您仍然可以通过使用自己的Converters,Aggregator和Matchers扩展lambdaj的功能,如下所述:

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM