2009-10-23 48 views
7

新類型(窗口>首選項>代碼樣式>代碼模板>新的Java文件)Eclipse的默認模板看起來是這樣的:在Eclipse中,如何更改類/類型模板中的默認修飾符?

 
${filecomment} 
${package_declaration} 

${typecomment} 
${type_declaration} 

創建一個新的類,它會是這個樣子:

package pkg; 

import blah.blah; 

public class FileName { 
    // Class is accessible to everyone, and can be inherited 
} 

現在,我在我的信仰狂熱的訪問應限制越好,繼承應該被禁止,除非明確允許,所以我想改變${type_declaration}聲明所有類作爲final而非public

package pkg; 

import blah.blah; 

final class FileName { 
    // Class is only accessible in package, and can't be inherited 
} 

這似乎說起來容易做起來難。我發現的唯一一個Google搜索是2004 question on Eclipse's mailing list,這是沒有答案。

所以,這個問題簡而言之:如何在Eclipse中更改默認的類/類型修飾符?

我正在使用Eclipse伽利略(3.5),如果這很重要。

回答

1

看起來不可能。 ${type_declaration}是內部的東西。

你可以做的是每次點擊「New Java Class」-Dialog中的最後一個複選框。但那不是你想要的。

+0

你說得對。這不是我想要做的:) – gustafc

0

只需使用New Class Wizard創建新類時檢查相應的訪問修飾符。

New Java Class Wizard

+0

這就是我今天所做的。問題是它不記得我的選擇,所以我忘了隨時做。 – gustafc

+1

@gustafc如果您忘記它,您可以讓Checkstyle提醒您。 – starblue

+0

@starblue,這是一個很好的提示。謝謝。 – gustafc

1

好吧,我覺得沒有任何冷靜的回答,那麼那個 「黑客」?

${filecomment} 
${package_declaration} 

${typecomment} 
import invalid;/* ${type_declaration} */ 

final class ${type_name} { } 

如果你打到現在控制 + + Ø組織進口,舊的類型聲明消失。您還可以添加組織導入以保存要自動執行的操作。

我知道這是不好的,但它做你想做的。

+0

呃......有趣的想法。不幸的是,它然後聲明一切爲'最終類',包括接口,枚舉等,並且它錯過了我在嚮導中聲明的任何超類/接口。我還必須在註釋中包含'$ {type_declaration}',因爲如果沒有它,就無法保存模板。 – gustafc

0

這裏是我的解決方法:

編輯模板:

${filecomment} 
${package_declaration} 

${typecomment} 
final class ${type_name} { 

    /* ${type_declaration} //delete */ 

    /** 
    * @see {@link Object#toString()} 
    * @return String representation of this instance. 
    */ 
    public String toString() { 
     return "some impl"; 
    } 

} 

註釋掉$ {} type_declaration因爲它是必需的。您有刪除評論,但要求已達到。對不起,如果這是一個2歲的線程,但對我來說,它仍然是相關的。

+0

錯過codevour的回答。它基本上是一樣的。 –

相關問題