简而言之,二进制兼容性意味着更改类时,无需重新编译使用它的类。例如,您从此类中删除或重命名了公共或受保护的方法
public class Logger implements Constants { public Logger getLogger(String name) { return LogManager.getLogger(name); }}从您的log-1.jar库中发布,并发布了新版本的log-2.jar。当log-1.jar的用户下载新版本时,当他们尝试使用缺少的getLogger(Stringname)方法时,它将中断其应用程序。
而且,如果删除常量接口(第17项),由于相同的原因,这也会破坏二进制兼容性。
但是您可以在不破坏二进制兼容性的情况下删除/重命名此类的私有成员或程序包私有成员,因为外部应用程序不能(或不应)使用它。



