Maven / Eclipse:生成的字节码不同(NoSuchMethodError)

时间:2014-07-30 07:48:47

标签: java eclipse maven

这是场景(伪代码):

class X

class Y extends X

class A
  public void methodA(X x){}

class B extends A

class Main
  main() {
    new B().methodA(new Y());
  }

从Eclipse中运行时一切都很好。使用maven构建时,我将在运行时获得NoSuchMethodError。 我看了一下字节码。

Eclipse编译器生成的字节码如下所示:

invokevirtual B.methodA(X)

maven编译器生成的字节码如下所示:

invokevirtual B.methodA(Y)

这导致NoSuchMethodErrorB没有方法" methodA"采用参数类型Y(方法签名因参数类型而异)。

你有什么想法可能有什么不对吗?我已检查两个环境对源/目标使用相同的值,设置为1.6

还有其他要检查的内容吗?

谢谢!

0 个答案:

没有答案