2014-08-28 48 views
1

intellij是否有可能总是以某种方式声明lambda表达式。使用该参数索引块,但没有括号配置Intellij for Java 8 lambda默认值

method(length, index -> { return null; }) 

例如,有时会的IntelliJ重构一个lambda成。这使得很难在时间上进行调整。

我想它总是使用此语法来代替:

method(length, (index) -> { return null; }) 

method(length, (Integer index) -> { return null; }) 

并始终使用块,除非它是一个参考方法,即OBJ ::方法。

可以这样做吗?

回答

1

这在IntelliJ 13中是不可能的(但也许在14?)。您的解决方法当然是重构选项(Ctrl + 输入)“将Lambda表达式主体展开为{...}”。

你想要的是有点像说:“我希望我所有的匿名类都是私有静态内部类,因为它更容易重构。”尽管如此,你不需要需要所有额外的语法;当你这样做时,IDE重构工具可以帮助你。

+0

是的,可以说“始终将Lambda表达式主体展开到{}”...正如您所建议的那样存在重构选项,但这是两步之遥。首先要创建你的内部类,新的Runnable(){} ..然后你重构一个lambda,然后你必须展开。我发现新的Runnable(){}然后变成一个lambda太过分了,但更容易让intellij以这种方式生成lambda。如果你没有开始输入新的东西,至少在我不知道的情况下你没有任何帮助。 – momomo 2014-08-28 14:19:40

+1

@SecretService不幸的是,IntelliJ 13中的lambdas的代码完成和格式化选项非常不足,希望它们在未来的版本中得到增强...... – kuporific 2014-08-28 15:10:13