我有一個擴展Java的ArrayList的類。我目前正在使用Java build 1.6.0_22-b04。看起來像這樣:問題重寫ArrayList添加方法
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。
任何人有任何想法快速解決?
你確定你的代碼不能編譯? – 2010-11-16 16:11:11
@org:他可能會將警告設置爲錯誤。 – SLaks 2010-11-16 16:11:48
@SLaks標準javac甚至不會警告 – 2010-11-16 16:15:06