2014-08-28 47 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