继承确保运行时Java超类是正确的
这来自一个真实的例子,一些Hibernate类将一个Antlr类划分为子类,并尝试填充一些字段,这只是在最近的Antlr版本中引入的
HibernateClass ---subclasses---> AntlrClass
HibernateClass uses AntlrClass.fieldX
如果有人在运行时部署了一个旧的Antlr库,那么这个超类字段将不存在,并且将抛出一个NoSuchFieldError
什么是标准的Java/JVM方法来确保在运行时动态绑定到的超类是兼容版本
# 1 楼答案
看看这个-
包裹通讯。机动的。邮寄
}
现在,您应该首先检查需要检查的每个jar文件的文件版本。如果发现旧的,只需显示一条错误消息
# 2 楼答案
那我就自己回答吧
Java的设计目的不是在运行时确定编译时超类是否与运行时超类匹配/兼容。由于Java在构建和运行时使用不同的类路径,并且子类不复制超类中的内容,因此不需要出现任何uchfield错误
Java并不是开箱即用的