IntelliJ - 是否可以在手表中使用循环?或在自定义类渲染器中?
问题描述:
这是一个奇怪的问题:IntelliJ - 是否可以在手表中使用循环?或在自定义类渲染器中?
我需要调试代码,它使用复杂的价值对象,并经常收集他们。但是我一次只对某些对象成员感兴趣。从概念上讲,假设我需要观察公交车上每个人的每一条SmallToe。
(给定一个Bus<Person>
这是class Bus extends ArrayList
一个实例),我想在调试写这个手表:
for(int i=0; i<bus.size(); i++) {
bus.get(i).getLeg().getSmallToe().getDesc();
}
但这当然,不分析(“意外令牌”)。手表中的循环甚至是合法的(或者在Intellij自定义Java类渲染器中),并且可以以某种方式完成?有没有其他方法可以解决这个问题?
替代方案,例如a)多次(单独的手表)写作get(x).getLeg().getSmallToe().getDesc();
和b)不得不展开一棵满10个屏幕长的成员和子成员的树并不是很令人兴奋。
谢谢。
答
代码片段在手表中尚不可能实现,但是有一天实现它们没有问题。我已经提交IDEA-178815,请投票。
在你的情况,你可以尝试使用流将它融入手表的表情,一样的东西:
bus.stream().map(p -> p.getLeg().getSmallToe().getDesc()).toArray()
然而,这可能是缓慢的每一步评估...
谢谢。这非常有帮助! 在Java类型的渲染器中,我应该能够声明渲染类型是java.util.ArrayList?我在List上解析错误,但也许我忘记了一些东西。 (我意识到我不清楚这一点:在我的例子中的总线不是'class Bus extends ArrayList ',而是一个非泛型的ArrayList扩展,在声明时用进行参数化。) –
DailyFrankPeter
编辑问题以阐明公交车使用泛型。 – DailyFrankPeter
啊,这不会在IntelliJ 14.1.5中工作,对吧?渲染器中的代码片段是比这更新的功能吗?可惜的是,我们仅限于此版本的内部插件原因。 – DailyFrankPeter