gpt4 book ai didi

java - 如何实现使用模板的接口(interface)?

转载 作者:行者123 更新时间:2023-11-30 09:07:10 25 4
gpt4 key购买 nike

我应该实现如下所示的不可变列表接口(interface):

public interface InterfList<T> extends Iterable<T> {
public InterfList<T> append(T t);
//More abstract methods follow
}

当我让 netbeans 为我实现接口(interface)时,出现了:

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.");
}
}

第一种方法允许将任何种类的对象存储在列表中,这使它变得一团糟。

然而,第一种方法在 netbeans 中被标记为错误:

MyList is not abstract and does not implement method append(object) in InterfList

最佳答案

你应该这样做:

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> .

关于java - 如何实现使用模板的接口(interface)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24099276/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com