私は、2種類のリスト<>オブジェクトを受け入れることができるメソッドがあることを発見しました。例:ジェネリックを使用して複数の引数を持つ共通のメソッドを共有する
public void foo(Long id) {};
上記の関数は、それぞれがLong型またはInteger型のいずれかのIDを持つ複数のオブジェクトで呼び出されます。何が起こっていることは、そのIDはロングのように定義しているオブジェクトに対して、このメソッドの呼び出しはうまく動作することです:
class Bar {Long id}
Bar test = new Bar(1L);
foo(bar.id);
しかし、整数のIDを持つオブジェクトのために、私は最初のfooを使用する前に、長整数に変換する必要があります。私はもちろんIntegerを取る新しいメソッドを持つことができますが、Idではそうしません。ジェネリックスでこれを行う方法はありますか?
があなたのメソッドは 'Double'、' Float'のような他の数値型を処理するように変更することでした、等? – Bohemian
'long'と' int'ではなく 'Long'と' Integer'を使う理由はありますか? * id *のユースケースは通常 'null'を排除するので、あなたが記述した問題に遭遇する欲求の他に、私は何も見ません。 'long'と' int'では、明示的な変換は必要ありません... – Holger