相关疑难解决方法(0)

为什么Enum会实现接口?

我刚刚发现Java允许枚举实现一个接口.什么是一个很好的用例呢?

java enums

180
推荐指数
12
解决办法
15万
查看次数

maven中javac编译命令错误的解决方法

我遇到了Java编译器中的一个错误,其中提交用于编译的文件的顺序可能导致代码无法编译.我已经深入研究了代码,以找出我能够重现问题的最少量代码,从而产生三个源文件(每个1个类).

public interface ActionSpec {
    public abstract int run(String param);
}


public enum Actions implements ActionSpec {
    SKIP {
        public int run(String d) {
            return 0;
        }
    };
}

public class Program {

    public static void main(String[] args) {
        Actions.SKIP.run("hello");
    }
}
Run Code Online (Sandbox Code Playgroud)

通过以特定顺序使用javac参数可以重现该问题.简而言之,为了成功,必须始终在使用它的Program类之前编译Actions类,否则javac无法以理智的方式处理它:

# this case fails
echo "Trying order: javac Program.java Actions.java ActionSpec.java"
rm *class
javac -verbose Program.java Actions.java ActionSpec.java

# this case fails
#rm *class
#javac Program.java Actions.java ActionSpec.java

# this case fails
#rm *class
#javac …
Run Code Online (Sandbox Code Playgroud)

java javac maven

19
推荐指数
1
解决办法
2774
查看次数

标签 统计

java ×2

enums ×1

javac ×1

maven ×1