2009-10-23 4 views
7

Eclipseのデフォルトテンプレートは次のようになります。Eclipseで、クラス/タイプテンプレートのデフォルト修飾子を変更するにはどうすればよいですか?新しいタイプ(ウィンドウ>設定>コードスタイル>コードテンプレート>新しいJavaファイル)のための

:新しいクラスを作成する

 
${filecomment} 
${package_declaration} 

${typecomment} 
${type_declaration} 

、それは次のようになります

package pkg; 

import blah.blah; 

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

は今、私はアクセスはできるだけ制限しなければならない、と明示的に許可しない限り、継承を禁止する必要があるので、私はfinalではなくpublicとしてすべてのクラスを宣言する${type_declaration}を変更したいというのが私の信念で熱烈なよ。

package pkg; 

import blah.blah; 

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

これは完了したと言われているようです。私が見つけた唯一のものは、回答していない2004 question on Eclipse's mailing listです。

したがって、短く質問します。Eclipseでデフォルトのクラス/タイプ修飾子を変更する方法を教えてください。

Eclipse Galileo(3.5)を使用しています。

答えて

1

そうではないようです。 ${type_declaration}は内部のものです。

"新しいJavaクラス"ダイアログボックスの最後のチェックボックスをダブルクリックすることで実行できます。しかし、それはあなたがしたいことではありません。

+0

あなたはそうです。それは私がしたいことではありません:) – gustafc

0

新しいクラスウィザードを使用して新しいクラスを作成する場合は、適切なアクセス修飾子を確認してください。

New Java Class Wizard

+0

それは私が今日していることです。それは私の選択を覚えていないということなので、今は毎回やっています。 – gustafc

+1

@gustafcあなたが忘れてしまった場合、Checkstyleに警告することができます。 – starblue

+0

@starblue、それは良いヒントです。ありがとう。 – gustafc

0

多分これはあなたを助けるでしょうか?

eclipse\plugins\org.eclipse.jdt.ui_*.jar\templates\ 

Eclipse custom variable for java code templates

+0

実際には、Eclipseがテンプレートをピックアップする場所と思われます。 '$ {type_declaration} 'はありません。私はそれが宣言されているよりもむしろ生成されていると思われ始めています。 – gustafc

1

さて、私はそこに任意のクールな答えはありませんので、何について "ハック" だと思いますか?

${filecomment} 
${package_declaration} 

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

final class ${type_name} { } 

あなたは今、輸入を整理するコントロール + Shiftキー + Oをヒットした場合、古い型宣言が消えます。また、インポートを整理してアクションを保存し、自動化することもできます。

私はそれが悪いと知っていますが、それはあなたが望むことをします。それが必要とされているため

${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:

編集テンプレート:

+0

まあ...興味深い考え。残念なことに、それはインタフェース、列挙型などを含めてすべてを最終的なクラスと宣言し、ウィザードで宣言したスーパークラス/インタフェースをすべて失います。私は '$ {type_declaration}'をコメントに含めなければなりません。なぜなら、テンプレートなしでは保存できないからです。 – gustafc

0

は、ここに私の回避策です。削除するコメントがありますが、要件が達成されています。申し訳ありませんが、これは2歳のスレッドですが、私にとってはまだ関連性があります。

+0

codevourの答えが見つかりませんでした。基本的に同じです。 –

関連する問題