私はこの(簡単にするために、整数を想定)のような方法がある場合:正しい種類のリストを返すにはどうすればいいですか?
public static List<Integer> doSomething(List<Integer> list) {
// logic here
}
を、私は内部的に私が作成し、何とか移入し、呼び出し元に戻ります新しいリストを作成するために、私の処理のために必要な、呼び出し元がどのタイプのリストを渡したかわからないので、どうすればいいですか?私は、呼び出し側が渡されたどのようなことを異なる種類のList
を返すようにしたくない
。
例えば呼び出し元がLinkedList
を渡し、I がを返さない場合は、ArrayList
を返します。
この問題に最も近づくにはどうすればよいですか?
なぜ、同じ種類のものを返す必要があるのですか?人々は 'ArrayList a = doSomething(a);'のようなものでこれを呼び出さないでしょうか?その場合、自動的にキャストされますか? –
kba
なぜ 'ArrayList a ='で呼び出すのですか?答えた他の友人は、どこにでも浮動小数点型のArrayListがあることを不平にして/指摘しました(つまり、インターフェイスを使用します)。 – Cratylus
@KristianAntonsenそれは意味をなさない;私が 'LinkedList'を渡すと、戻り値をランダムに任意の実装にキャストできず、動作することを期待できません。 –