gpt4 book ai didi

java - 重写 ArrayList 添加方法时出现问题

转载 作者:行者123 更新时间:2023-12-01 07:41:39 24 4
gpt4 key购买 nike

我有一个扩展 Java ArrayList 的类。我目前使用的是 Java 版本 1.6.0_22-b04。看起来像这样:

public class TokenSequence extends ArrayList<Token>{
public TokenSequence (Collection<Token> tokens) {
super(tokens);
}

public void add(Object o) {
if (o instanceof Token){
add( (Token)o );
}
else if (o instanceof TokenSequence)
add( (TokenSequence)o );
else
add( new Token( o.toString() ) );
}

}

上面代码中的问题是 add(Object o) 方法。 Java 不会让我编译代码,因为它说

"Name clash: The method add(Object) of type TokenSequence has the same erasure as add(E) of type ArrayList<E> but does not override it"

相同的代码在 Java 版本 1.6.0_17-b04 下的另一台计算机上运行没有问题。

有人知道快速修复的方法吗?

最佳答案

尝试将 @Override 注释添加到您的 add() 方法中,并确保具有相同的签名( boolean 返回类型)

public class TokenSequence extends ArrayList<Object> {
@Override
public boolean add(Object e) {
return super.add(e);
}
}

或者,如果您希望它为空,请采用另一个方法参数。

干杯

关于java - 重写 ArrayList 添加方法时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4196149/

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