次のコードではスタック オーバーフロー エラーが発生します。理由を教えてください。(メソッドで「this」ではなく「super」を参照する場合、エラーを修正する方法は知っていますが、それadd
が機能する理由はわかりません。)
package subclassingVector;
import java.util.Vector;
public class MyVectorSubclass extends Vector<MyModelClass> {
public MyVectorSubclass(){
MyModelClass m = new MyModelClass();
m.setId(2);
this.add(m);
if(this.contains(m)){
System.out.println("contains is true");
}
}
public boolean add(MyModelClass o){
this.add(o);
return true;
}
public boolean contains(Object o){
for(subclassingVector.MyModelClass mmc: this){
if(mmc.equals((MyModelClass) o)){
return true;
}
}
return false;
}
public static void main(String[] args) {
String s = new String("SSEE");
MyVectorSubclass m = new MyVectorSubclass();
}
public class MyModelClass {
private Integer id = null;
public MyModelClass() {
// TODO Auto-generated constructor stub
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
}
}