今天碰到的一个很多人都说是第一次碰到,而且想都没想到的问题,发出来共享一下
大致情况如下
public class A {
public void a() {
B b = new B();
b.b("x");
}
}
public class B {
public void b(String x) {
}
}
其中B.b(String)是新加上去的。再加上去之前,A里面的代码被comment了,
加好方法,去掉注释后,JBX编译A(顺便连B一同编译了),没抱错,发布,运行,结果抛了一个错,大意是java.lang.Error: Unresolved compliation problem: b(String) not defined in type B
开始以为是NoSuchMethod,便去重新编译B,再deploy-test,错误依旧,感到奇怪,再去反编译运行环境里的class,没错,b方法赫然在目。Make整个工程都没用。察看classpath也没有发现什么名堂,如此反复,郁闷了快一个小时之后,突然想到是不是A有问题,rebuild A,重新测试,竟然一切OK!