我有一个扩展Java ArrayList 的类。我目前正在使用 Java build 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 build 1.6.0_17-b04 下的另一台计算机上没有问题。
有人对快速修复有任何想法吗?