一般的なリストを返すメソッドに問題があります。コードは基本的に次のとおりです。
public class MyClass{
private List<MyListElement> myList = new ArrayList<MyListElement>();
public <E> List<E> getGenericList(){
return new ArrayList<E>();
}
public void thisWorks(){
List<MyListElement> newList = getGenericList();
myList.addAll(newList);
}
public void thisDoesntWork(){
myList.addAll(getGenericList());
}
public void thisDoesntWorkEither(){
for(MyListElement elem : getGenericList()){
fiddle();
}
}
}
この方法がうまくいかないのはなぜですか? (常に実用的とは限らない方法thisDoesntWork()
以外で) 回避する方法はありますか?thisWorks()