我有一个简单的 java 项目,我正在使用 ant 构建它。它有这两个类:
A.java:
public class A {
    public static void main(String[] args) {
        Integer i = 0;
        B.f(i);
    }
}
B.java:
public class B {
    public static void f(int i) {
        System.out.println("hello");
    }
}
哪个工作正常:
$ ant compile
[...]
$ java -cp bin A
hello
现在,如果我将int参数更改B.f为Object:
public class B {
    public static void f(Object i) {
        System.out.println("hello");
    }
}
...代码重新编译正常...
$ ant compile
[...]
$ java -cp bin A
Exception in thread "main" java.lang.NoSuchMethodError: B.f(I)V
    at A.main(Unknown Source)
...但它在运行时崩溃。为什么?
编译前的文件夹结构:
bin
build.xml
src
├── A.java
└── B.java
构建.xml:
<project>
    <target name="compile">
        <javac srcdir="src" destdir="bin"/>
    </target>
</project>