2 つの一般的なリストを結合し、新しいリストを作成したいので、コードを単純な形式で提供しています。
public class Example{
public static <E> List<E> union(List<? extends E> a,List<? extends E> b){
List<Object> es= new ArrayList<Object>();
for( E e:a){
es.add(e);
}
for( E e:b){
es.add(e);
}
return (List<E>) es;
}
public static void main(String[] args) {
List<Long> a=new ArrayList<Long>();
a.add(1L);
List<Integer> b=new ArrayList<Integer>();
b.add(2);
List<Number> list3=union(a, b);//Compilation Error due to mismatch of return type
List<String> a1=new ArrayList<String>();
a1.add("H");
List<String> a2=new ArrayList<String>();
a1.add("=E");
List<String> a3=union(a1, a2);//no compilation error
}
}
私の要件は、2 つの整数リストと長いリストを組み合わせて数値リストを生成できる必要があり、他のタイプも組み合わせることができる必要があるということです。ここでの問題は、整数と長いリストを組み合わせようとしているときの戻り値の型に関するものです。コードを機能させるには、どのような変更を加える必要がありますか。