【发布时间】:2017-09-29 15:55:00
【问题描述】:
例如,在我的代码中有
public enum Color { RED, BLACK }
我稍后添加一个颜色,即
public enum Color { RED, BLACK, BLUE }
这会破坏 ABI 吗?也就是说,我的用户是否需要重新编译他的 Java 类?
【问题讨论】:
标签: java jvm abi jls jvm-bytecode
例如,在我的代码中有
public enum Color { RED, BLACK }
我稍后添加一个颜色,即
public enum Color { RED, BLACK, BLUE }
这会破坏 ABI 吗?也就是说,我的用户是否需要重新编译他的 Java 类?
【问题讨论】:
标签: java jvm abi jls jvm-bytecode
没有。根据Java Language Specification:
13.4.26。枚举的演变
在枚举中添加或重新排序常量不会破坏与预先存在的二进制文件的兼容性。
请注意,即使重新排序也能保持兼容性,这与 C/C++/C# 不同。
【讨论】: