2009-11-23 74 views

回答

11

對於getter和equals/hashcode都沒有模板。這些在IDEA中是硬編碼的。

Source

你可以看到,在這個IntelliJ Wishlist

+3

現在有(我使用Ultimate 2016) - 請參閱下面的回答 – werner 2016-08-04 09:12:42

10

你沒有提到你使用的是什麼版本的想法,所以我想在最近8或9

檢查你的代碼樣式設置,在「對齊方式和大括號」。你應該在那裏找到一個「簡單的方法在一行」選項。

+0

我們是8.1.3。這似乎沒有工作,但.. – 2009-11-23 19:09:52

+0

您是否嘗試取消選中「保留重新格式化」組中的相關「換行符」框? – seh 2009-11-23 19:13:45

+3

單行設置告訴IntelliJ在重新格式化時保留它,但不要這樣創建它。 – 2009-11-23 22:31:07

9

我不知道爲什麼你要做到這一點,想必保存的視覺空間。如果是這樣,只需使用IntelliJ的功能來摺疊簡單的getter/setter,並忘記它如何行。 摺疊功能可以在

設置中找到 - > IDE設置 - >編輯 - >代碼摺疊 - >顯示代碼摺疊大綱 - >簡單屬性訪問

26

我使用的IntelliJ IDEA 14.1.0,你可以自定義此行爲。

只需使用 「生成...」 選項,或者使用Alt鍵 + 插入快捷方式,選擇 「getter和setter」。

在打開「Select Fields」窗口中,頂部有「Getter Template」選項。使用下拉列表旁邊的「...」按鈕編輯模板。

選擇「IntelliJ Default」,然後單擊「複製」按鈕以創建一個名爲「AlwayStartWithGet」的新文件,您可以編輯它。

只是刪除以下部分:

#if ($field.boolean) 
    #if ($StringUtil.startsWithIgnoreCase($name, 'is')) 
    #set($name = $StringUtil.decapitalize($name)) 
    #else 
    is## 
#end 
#else 
    get## 
#end 

並配有簡單的

get## 

你應該離開,取而代之的是:

publiC## 
#if($field.modifierStatic) 
    statiC## 
#end 
$field.type ## 
#set($name = $StringUtil.capitalizeWithJavaBeanConvention($StringUtil.sanitizeJavaIdentifier($helper.getPropertyName($field, $project)))) 
get## 
${name}() { 
    return $field.name; 
} 

現在你可以使用自定義模板生成代碼時,通過在getter模板下拉列表中選擇它。

+0

這看起來很有希望,但我沒有看到Getter模板按鈕到此對話框的頂部。使用14.0.2。 – Gervase 2015-04-10 14:37:42

+2

爲我工作,但確切地說,模板的最後部分應該看起來像: '$ {name}(){return $ field.name; }' in one line – 2015-04-27 07:35:14

+4

請務必檢查一行中的設置/代碼樣式/ Java /簡單塊和一行中的簡單方法。否則,自動格式化會將線條重新插入,並且在修改模板後您看不到任何效果... – werner 2016-08-04 09:14:48

3

適用於Idea 2016。

消氣模板

合併的最後3行到單個行:

${name}() { return $field.name; } 

設置器模板

在的末尾添加雙散列(沒有空格)最長的行:

[...] ($field.type, $paramName) {## 

合併的最後兩行成一條線:

$field.name = $paramName; } 

注:如由@mindas評論,你可能會想,而不是視覺的自動摺疊,不得到版本。