我遇到了 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