1

Ecipse (Kepler) で Java をコーディングしているときに、ジェネリック インターフェイス タイプの新しい変数を作成しているときに問題が発生し、変数を初期化するときに具体的な実装をオートコンプリートします。List/ArrayList や Map/HashMap などの一般的なインターフェイス/具体的な実装について話しています。

例: IDE に次のように入力します。

List<String> stringList = new ArrayL

次に、オートコンプリート (ctrl + スペース) を使用してコードを で埋めますArrayList()が、これは IDE がコードに挿入するものです。

List<String> stringList = ArrayList<>()

そのため、String ジェネリック型のパラメーター化を完全に無視しています。Eclipse IDE で変数宣言のジェネリック型パラメーターを検出し、それを実装のコンストラクターの型パラメーターに配置する方法についてのアイデアはありますか? これはEclipseで自動的に機能していましたが、ここ数か月で突然機能しなくなりました。Eclipse Juno から Eclipse Kepler へのアップグレードに加えて、これが発生するためにワークスペースに対して行った構成変更が何であるかはわかりません。

4

1 に答える 1

3

new ArrayList()生の型のインスタンスであるでオートコンプリートされた場合、Eclipse はジェネリック型を無視します。

ただし、ダイヤモンド演算子new ArrayList<>()を使用するでオートコンプリートします。この演算子は Java 7 以降に存在し、 と同等ですが、冗長性はありません。new ArrayList<String>()

要するに、Eclipse は正しいことを行います。

于 2013-08-13T21:22:15.937 に答える