2011-04-19 89 views
1

我正在使用IntelliJ IDEA Community Edition 10開發Java SE項目。如何擴展IntelliJ IDEA CE代碼評估功能?

我的應用程序需要很長時間才能啓動,所以我最喜歡調試代碼的方式是啓動 - >在斷點處停止 - >打開代碼評估窗口 - >輸入一些代碼並查看返回結果。

但是,當我的代碼返回一個大型的數組/對象集合時會出現這個問題。我想要的是通過字段的值或其他標準過濾對象。

我可以使用Apache Commons Collections或Google Guava進行過濾,但IntelliJ IDEA的代碼評估不允許創建匿名類,我需要定義Predicates。

我也可以使用lambdaJ,但我巨大集合中的對象類聲明爲final(並且我無法更改),所以lambdaJ無法擴展這些類的操作。

我也嘗試使用BeanShell,但它需要我將代碼作爲字符串傳遞,這會導致IDEA的代碼完成。另外,bsh不能在被調試的進程中使用局部變量。最後,我必須每次指定完整的類名稱。

任何人都可以幫助找到解決這個問題?將IntelliJ IDEA的代碼評估擴展爲支持匿名類或者以其他方式過濾可以在這種情況下工作的集合可能是一種不可思議的方式。

+0

Jetbrains問題跟蹤器[Java評估工作表](http://youtrack.jetbrains.com/issue/IDEABKL-6587)上有功能請求。如果你有類似於我在這裏描述的問題,我建議加入它。這不完全相同,但它是朝着正確方向邁出的一步。 – vadipp 2013-01-18 08:26:31

回答

0

這裏描述,您仍然可以使用lambdaj用自己的轉換器,集成商和匹配器擴展其功能:

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

+0

感謝@MarioFusco和@PeterLawrey,但這種方式我需要在啓動程序之前創建這些過濾設施。在我的情況下,重要的是我剛開始程序,然後開始試驗 - 調用方法並查看結果。 – vadipp 2011-04-20 04:17:48

0

你可以寫你自己的方法來過濾你怎麼想要的結果。只要在開始調試之前編譯它們,它們就可以用於評估。例如

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