いくつかのサブクラスを持つスーパークラスがあります。
public abstract class SuperClass {
}
public class SubClass1 extends SuperClass {
}
SuperClass型のオブジェクトを含むArrayListを作成しました。
private ArrayList<SuperClass> list = new ArrayList<SuperClass>();
私がEclipseで見ているエラーは、いくつかあります。
まず、サブクラスのオブジェクトを追加しようとするとエラーが発生します。
SubClass1 object;
object = new SubClass1(parameters);
list.add(object) //I get error: The method add(SuperClass) in the type
//ArrayList<SuperClass> is not applicable for the arguments
//(SubClass1)
コードの後半で、あるタイプを別のタイプにキャストしようとすると、さらに多くの問題が発生します。
for (SuperClass obj : list){
if (obj instanceof SubClass1){ //This gets an error like this:
.... //Incompatible conditional operand types
} // SuperClass and SubClass1
言うまでもなく、私が呼び出しているメソッドの中には、タイプに対して未定義として表示されるスーパークラスで明確に定義されているものがあります。ここで頭を叩いています。何が問題なのか全くわかりません。
もし皆さんが私をいくつかの可能な方向に向けることができれば、私は大いに義務づけられるでしょう。十分な情報を提供したかどうかはわかりませんので、該当すると思われる質問があればお問い合わせください。
前もって感謝します。