これは実世界の例から来ています。一部の Hibernate クラスは Antlr クラスをサブクラス化し、いくつかのフィールドにデータを入力しようとしますが、これは最近の Antlr バージョンでのみ導入されました。
HibernateClass ---subclasses---> AntlrClass
HibernateClass uses AntlrClass.fieldX
誰かが実行時に古い Antlr ライブラリをデプロイすると、このスーパークラス フィールドは存在せず、 aNoSuchFieldError
がスローされます。
実行時に動的にバインドするスーパークラスが互換性のあるバージョンであることを確認するための標準的な Java/JVM の方法は何ですか?