0

Eclipse 関数を使用して、実装したいインターフェースのメソッドを追加/生成するときに、これらのメソッドのパラメーター名が「あまりにも一般的」であるという問題が発生することがあります。

そのため、パラメーターのセマンティクスを表現する何かと呼ばれるのではなく、String パラメーターの場合は paramString という名前が付けられ、int の場合は paramInt などと呼ばれます。

たとえば、私は現在 javax.portlet.PortletSession インターフェースを実装しています (JSR 286 仕様の一部です。カスタム実装が必要です)。

メソッドには、次のようなパラメーターがあります。

public void setAttribute(String paramString, Object paramObject) 
public void setAttribute(String paramString, Object paramObject, int paramInt)

私がしたいのは、次のような sth です。

public void setAttribute(String key, Object value) 
public void setAttribute(String key, Object value, int scope)

メソッドの生成が思い通りに動作することもあれば、今回のようにうまくいかないこともあります。これは、実装したいインターフェイスを保持するライブラリをインポートする方法に関係していると思いますが、誰かが動作をもう少し詳しく説明できますか?

誰かが具体的な例に沿って説明できるかもしれません.JSR 286仕様をインポートするにはどうすればよいですか?メソッドを生成して必要なものを取得するにはどうすればよいですか?

どうもありがとう!

4

1 に答える 1

1

パラメータの名前を自分で変更するだけです。パラメータ名は、Ec​​lipse が処理しなければならない情報に基づいて生成されていると思われます。パラメータ名が jar ファイルに存在しない場合は、それを提供できません。ポートレット jar ファイルのデバッグ バージョンがある場合、または JavaDoc の場所を Eclipse に伝えることができる場合、それは役立つかもしれませんが、最終的には、ほとんどの場合、手動で名前を変更するだけで十分です。

テストとして、型の変数を宣言してPortletSessionから、次のようにオートコンプリートで使用しようとすると、次のようになると思います。

PortletSession session = null; // Doesn't matter for this
session.set <hit ctrl-space here>

私の推測では、これにはオートコンプリートにパラメーター名が含まれません...一方、オートインプリメントが機能する状況では、含まれます。Eclipse がどれだけの情報を処理しなければならないかがすべてです。

于 2012-07-07T08:06:13.940 に答える