2013-06-11 19 views
11

ジェネリッククラスの場合、通常、冗長なタイプのパラメータを避けるために、コンストラクタの代わりに静的メソッドを使用します。 ジェネリッククラスとスタティックメソッドを使用したEclipse自動補完

しかし、オートコンプリートを使用した場合、Eclipseはいつものように、タイプパラメータを示唆:

example(CTRL +スペース)Example<T>

私は、その後のように、手動で<T>を削除し、代わりに私の静的メソッドを追加する必要がありますExample.new()。この動作や、ワークフローを改善する便利なショートカットを変更する可能性はありますか? (私はまだEclipseの3で働いています、これは4に変更されている?)

static final class Example<T> { 

    /** Private, use factory method instead. */ 
    private Example() { 
    } 

    public static <T> Example<T> create() { 
     return new Example<T>(); 
    } 
} 

public static void main(String[] args) { 
    Example<Integer> example = Example.create(); 
} 

答えて

1

(ctrl-space)を押すと直ちにバックスペースキーを2回押すと、Eclipseはtype引数句全体を削除します。これはhttps://bugs.eclipse.org/bugs/show_bug.cgi?id=301990に対処するために実装されました。

これは完璧ではありません - タイプ名がnewより前にある場合は、単に型引数句を追加するだけですが、少なくともそれは管理しやすくなります。

+0

ありがとう、これはかなり新しいようです!しかし、あなたが投稿したリンクはまったく別の問題だと思いますか? – qqilihq

+0

問題はhttps://bugs.eclipse.org/bugs/show_bug.cgi?id=301990です – daus

3

は、私がここにAuto complete inserts type parameter placeholders too aggressively

を見られるように、それは日食のバグだったそして、あなたはそれがかもしれないこれを見て持つことができると思います助けてくださいEclipse and Generic Types

+0

チケットのリンクをありがとうございますので、少なくともその問題に関するニュースを追跡できます。 – qqilihq

+0

あなたの問題の解決策を見つけましたか? – Pierrick

+1

いいえ、まだ(他のものの横に)私を悩ましています。しかし、ついにIntelliJのライセンスを購入し、最終的に切り替えを行うべきです。 – qqilihq

関連する問題