这来自一个真实世界的例子,一些 Hibernate 类继承了 Antlr 类并尝试填充一些字段,这仅在最近的 Antlr 版本中引入。
HibernateClass ---subclasses---> AntlrClass
HibernateClass uses AntlrClass.fieldX
如果有人在运行时部署了较旧的 Antlr 库,则该超类字段将不存在,并且NoSuchFieldError
会抛出 a。
确保在运行时动态绑定到的超类是兼容版本的标准 Java/JVM 方法是什么?