我遇到了java编译器的一种非常奇怪的行为。
我有一个maven项目,它在Mac OS X上完美编译,但是在Linux上发现“方法不会覆盖或实现超类型中的方法”错误,当它找到与超类方法相关的@Override时。
例如,我有班级:
public abstract class State<M extends OperationApplication, R extends UnaryRelation<? extends Object>> implements BehaviorModelVisitable, Serializable {
public abstract State<M, R> transform(StateAbstractionTransformer<M, R> transformer);
}
我得到了与@Override相对应的错误:
public final class AbstractState extends State<ActualObserverApplication, UnaryRelation<? extends Object>> {
@Override
public State<ActualObserverApplication, UnaryRelation<? extends Object>> transform(StateAbstractionTransformer<ActualObserverApplication, UnaryRelation<? extends Object>> transformer) {
}
如何在运行Hudson的Linux机器上正确编译?那台机器有
javac 1.6.0_26