У меня есть класс, расширяющий 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.
У кого-нибудь есть идеи по быстрому исправлению?
Вы уверены, что код не компилируется? –
@org: Вероятно, он установил предупреждения как ошибки. – SLaks
@SLaks стандарт javac даже не предупреждает –