将枚举数添加到Java枚举会破坏ABI吗?

将枚举数添加到Java枚举会破坏ABI吗?,java,jvm,abi,jls,jvm-bytecode,Java,Jvm,Abi,Jls,Jvm Bytecode,例如,在我的代码中有 public enum Color { RED, BLACK } 后来我加了一种颜色,就是 public enum Color { RED, BLACK, BLUE } 这会打破ABI吗?也就是说,我的用户是否需要重新编译他的Java类?否。根据: 13.4.26. 枚举的演化 在枚举中添加或重新排序常量不会破坏与预先存在的二进制文件的兼容性 请注意,与C/C++/C#中不同的是,即使重新排序也能保持兼容性。Idea from。

例如,在我的代码中有

public enum Color { RED, BLACK }
后来我加了一种颜色,就是

public enum Color { RED, BLACK, BLUE }
这会打破ABI吗?也就是说,我的用户是否需要重新编译他的Java类?

否。根据:

13.4.26. 枚举的演化 在枚举中添加或重新排序常量不会破坏与预先存在的二进制文件的兼容性

请注意,与C/C++/C#中不同的是,即使重新排序也能保持兼容性。

Idea from。