1

「コードファクトリーメソッド」としか言いようのないものを作りたい。

コードの繰り返しを避けるために、実行するコードを含むメソッドを作成したいと思いますが、型が配置されるはずの「プレースホルダー」を使用します。もちろん、メソッドはこれらの型をパラメーターとして受け取り、それぞれを適切な場所に配置します。例えば:

void factory(placeholder1, placeholder2){  
  ArrayList<placeholder1> List = new ArrayList<placeholder1>;  
  Placeholder2 variable;  
}  
factory(String, Integer);

次の結果が得られます。

ArrayList<String> List = new ArrayList<String>;  
Integer variable;

これについてどのように考えますか?

あなたの助けに感謝します。

編集:すべてのフィードバックに感謝します。私は一般的なアプローチを行っていましたが、誰かが以前に言及したと思われるものに遭遇するまで、しばらくの間機能していました。次のような汎用オブジェクトの 1 つの中でメソッドの 1 つを使用したい:

整数変数 = new Integer();
variable.isInteger();

ジェネリックを使用してこれを行うことができるようには見えません。これに対する回避策はありますか?

4

2 に答える 2

2

これがどのように見えるかです:

<placeholder1, placeholder2> void factory(){  
  ArrayList<placeholder1> List = new ArrayList<placeholder1>;  
  placeholder2 variable;  
}  
this.<String, Integer> factory();

しかし、ジェネリックについて読むべきだというマットに同意します。また、期待どおりの結果が得られない可能性があるため、型消去には注意してください。

于 2010-10-01T20:14:03.950 に答える
2

単にジェネリックを採用するのではなく、何らかのマクロ機能が必要なようです。Javaにはそれがありません。たとえば、例を少し拡張するには、次のようなことはできません。

factory(String, Integer);
List.get(variable);
于 2010-10-01T20:19:15.833 に答える