4

リストの adder/remover メソッドを記述する必要に遭遇することが多すぎます。

public void addSomething(Something something){
    somethings.add(something);
}

public void removeSomething(Something something){
    somethings.remove(something);
}

私が正しければ、Eclipse テンプレートはオートコンプリートをサポートできます...たとえば、次の場合:

Vector<Something> somethings=new Vector<Something>();

テンプレートでメソッドを Eclipse のオートコンプリートに追加し、メソッド全体をオートコンプリートしたいと考えています。

public void addSomething(Something something){
    somethings.add(something);
}

追加」 + ( Ctrl +スペース) と入力すると...

このようなことをどのように達成するかについてのアイデア...おそらく、この種の主題に固有の読み物を教えてください。

** アップデート **

さて、これは私がこれまでに持っているものです:

public final void add${type:elemType(collection)}(${type} ${varName:newName(type)}) {
    ${collection}.add(${varName}); 
}

ただし、ここに問題があります。「追加」+ (Ctrl + スペース) と入力すると、次のようになります。

クラス レベルでは、コレクションがフィールドとして宣言されているため、空の変数をコレクションとして取得します。

public final void addtype(type type) {
    collection.add(type);
}

メソッド レベルでは、コレクションがフィールドとして宣言されているため、空の変数をコレクションとして取得します。

public final void addtype(type type) {
    collection.add(type);
}

メソッドレベルでは、コレクション参照はメソッドのローカル変数ですが、正しい構文を取得しますが、add メソッドは他のメソッド内にあります。

public void method(...) {
    public final void addSomething(Something something) {
        this.somethings.add(something);
    }
}

つまり、フィールド レベルの参照を取得できません。どうすれば取得できますか?

** 更新 2 **

これも同じ結果になります。

public final void add${type:elemType(collection)}(${type} ${varName:newName(type)}) {
    ${collection:field(java.util.Collection)}.add(${varName}); 
}

public final void remove${type:elemType(collection)}(${type} ${varName:newName(type)}) {
    ${collection:field(java.util.Collection)}.remove(${varName}); 
}

ありがとう、

アダム。

4

3 に答える 3

2

私は最終的に以下を使用しました:

public final void add${type:elemType(collection)}(${type} ${varName:newName(type)}) {
    ${collection:field(java.util.Collection)}.add(${varName}); 
}

public final void remove${type:elemType(collection)}(${type} ${varName:newName(type)}) {
    ${collection:field(java.util.Collection)}.remove(${varName}); 
}

メソッドでこれを作成し、クラスレベルにカットします... :)

于 2012-05-19T23:10:24.590 に答える
2

利用可能なテンプレート変数については、Eclipse ヘルプ を参照してください。Eclipse の既存のテンプレートに基づいてテンプレートを作成する必要があります。Eclipse の「テンプレート ビュー」を参照してください。

于 2012-03-07T03:47:42.300 に答える
2

を使用することをお勧めしますSource > Generate delegate methods。生成するメソッドごとにテンプレートを作成する必要はありません。

Generate delegate methodsオブジェクトを宣言するたびに、 のホット キーを割り当てる

List<Integer> integer = new ArrayList<Integer>();| <- your cursor

ホットキーを押すと、Eclipse は現在選択されているオブジェクトを検出し、使用可能なメソッドのリストを表示します。

于 2012-03-07T09:15:20.283 に答える