依存関係 jarがあります。ビルド A の場合、dependency.jar にはクラス A、B、C、D が含まれます。ビルド B の場合、dependency.jar にはクラス A、B、C のみが含まれます。
問題:
ソース: 私のコードはすべてのクラス A、B、C、D を利用しています。
目標: 私が書いたコードは、ビルド A と B で同じままであるべきです。
問題: しかし、明らかにクラス D はビルド B では使用できません。したがって、私のコードはクラス D の可用性を処理する必要があります。同時に、クラス D の可用性を処理するために追加する追加のコードは、速度が低下しないはずです。私のコード。
可能な解決策を提案してください。
1 つの解決策: Class.forName() API を使用して、クラスの可用性を確認します。
解決策の問題: API は、利用できない場合は毎回 classdefnotfound をスローし、私の理解によれば、class.forName はクラスをロードしようとするため、遅くなります。
注: クラス D はオプションです。利用できない場合は、そのクラスに関連する機能を無効にする必要があります。