"java.lang.Error:Unresolved compilation problem"的可能原因是什么?
附加信息:
在现有JAR之上从构建中复制一组更新的JAR文件并重新启动应用程序之后,我已经看到了这一点.JAR是使用Maven构建过程构建的.
如果接口改变,我希望看到LinkageErrors或ClassNotFound错误.上述错误暗示了一些较低级别的问题.
干净的重建和重新部署解决了这个问题.此错误是否表示JAR已损坏?
以下在我的Eclipse中编译得很好:
final int j = 1/0;
// compiles fine!!!
// throws ArithmeticException: / by zero at run-time
Run Code Online (Sandbox Code Playgroud)
Java的防止了许多"哑代码"从甚至在首位编译(如"Five" instanceof Number不编译),所以其实这甚至没有产生尽可能多的警告是非常令我感到诧异.当您考虑允许在编译时优化常量表达式这一事实时,阴谋会加深:
public class Div0 {
public static void main(String[] args) {
final int i = 2+3;
final int j = 1/0;
final int k = 9/2;
}
}
Run Code Online (Sandbox Code Playgroud)
在Eclipse中编译,上面的代码片段生成以下字节码(javap -c Div0)
Compiled from "Div0.java"
public class Div0 extends java.lang.Object{
public Div0();
Code:
0: aload_0
1: invokespecial #8; //Method java/lang/Object."<init>":()V
4: return
public static void main(java.lang.String[]);
Code:
0: …Run Code Online (Sandbox Code Playgroud)