2 つのオブジェクトを持つ関数を作成したいと思います。2 番目のオブジェクトが null でない場合は 2 番目を返します。それ以外の場合は、最初のオブジェクトを返します (null かどうかは関係ありません。
これが私が思いついたコードです:
public <T> T merge (Class<T> x, Class<T> y){
if (y!= null) return (T) y;
else return (T) x;
}
しかし、キャストに関する警告が表示されます: Type safety: Unchecked cast from Class to T
これが正しい書き方なのか、それとももっと良い方法があるのか 疑問に思っています。
渡された 2 つのオブジェクトが同じクラスからのものである場合、2 番目のクラスを返すだけです。クラスとnullの場合もあり、クラスがnullでないものを返したいと思います。両方のクラスが null の場合は、null を返します。
2つの異なるクラスに合格するケースは他にありません。