我希望实现这样的不可变列表接口:
public interface InterfList<T> extends Iterable<T> {
public InterfList<T> append(T t);
//More abstract methods follow
}
当我让netbeans为我实现接口时,出现了以下内容:
public class MyList implements InterfList {
private Object value;
@Override
public InterfList append(Object t) {
throw new UnsupportedOperationException("Not supported yet.");
}
}
但是,我想保留模板,以便只接受适当类型的对象。如:
public class MyList<T> implements InterfList {
private T value;
@Override
public InterfList<T> append(T t) {
throw new UnsupportedOperationException("Not supported yet.");
}
}
第一种方法将允许在list中存储任何类型的对象,这使得它相当混乱。
第一种方法在netbeans中被标记为错误:
MyList
不是抽象的,在InterfList
中没有实现方法append(object)
你应该这样做:
public class MyList<T> implements InterfList<T> {
private T value;
@Override
public InterfList<T> append(T t) {
throw new UnsupportedOperationException("Not supported yet.");
}
}
您想实现InterfList<T>
。
由于您在没有任何类型参数的情况下实现InterfList
,因此您正在实现InterfList<Object>
,这会导致append
方法出现错误,该方法采用T
而不是Object
。您想要实现InterfList<T>