私は、オブジェクトのArrayListを他のオブジェクトのArrayListに変換するクラスを作成しようとしています。すなわちArrayList内のオブジェクトのタイプを検出します
ArrayList<Foo> convert(ArrayList<Bar> input){
//conversion logic
}
ArrayList<Bar> convert(ArrayList<Foo> input){
//conversion logic
}
残念ながらJavaは、同じ名前とそれが同じ入力と出力であることを信じているとの二つの機能を持っている必要はありません。
私は別のルートを試みています。代わりに、同じ名前の複数の機能のうち、私は、ArrayListのを受け入れる一つの機能を作りたい、内部で適切な変換を行い、そしてArrayListのを返すオブジェクトの種類を決定します。
ArrayList convert(ArrayList input){
//conversion logic for Foo
//conversion logic for Bar
}
は、この可能性のようなものです?
は、あなたの目的のためにバーとFooの間の任意のサブタイプ関係がありますか? – notnoop
問題点:柔軟性のために、入力はListやもっと良いCollectionなどのインターフェースでなければなりません。実際には戻り値の型もインタフェースでなければなりません。 –
あなたの目標を明確にしてください。いくつかの種類の間で汎用コンバータまたは変換を作成したいですか?後者の場合は、メソッド名にソース・タイプまたはターゲット・タイプ名を入れるだけです。 – akarnokd