Javaでは、特定のタイプ(たとえば)の配列を意味するジェネリックテンプレートを探していますFoo
。これにより、配列に対するインスタンスメソッドの呼び出しが可能になります。舞台裏では、これは、配列内のすべてのFooインスタンスを反復処理し、各インスタンスでインスタンスメソッドを呼び出すことを意味します。
おそらく、いくつかのコードはこの点をよりよく示しています:
public class Foo{
public Foo(){}
public void Method1(){}
}
だからあなたは持っています:
Foo foo = new Foo();
foo.Method1();
しかし、本質的にこの種のことを可能にしたカスタムタイプの汎用テンプレートを作成できますか?
Foo[] foos = new Foo[]{new Foo(),new Foo(), new Foo()};
foos.Method1();
これは本質的に次の構文糖衣です:
foreach(Foo f : foos){
f.Method1();
}
私の動機は、誰かが次のようなvarargsを使用できるようにすることです。
someHelper(fooInstance1,fooInstance2).Method1()
を返しsomeHelper()
ますFoo[]
。
各Method1()
呼び出しが値を返した場合、これを戻り値の配列(ここでReturnVals.size == Foos.size
)にラップするとさらに良いでしょう。
最悪の場合、これを実現するために、この作業が必要なタイプごとに個別のクラスを作成する必要があります。おそらく、インターフェイスを使用して、単一のインスタンスとインスタンスの配列に適用される機能を記述します。
これをエレガントに実現できるJavaマジック、デザインパターン、またはジェネリックジゲリーポケリーはありますか?
さらに、そうでない場合、どの言語もこれを本質的に促進しますか?
すべてのシナリオで機能するとは限らないことを感謝しますが、それは私が推測するプログラマーの裁量によるものです。
どうもありがとう