ここでこのメソッドのドキュメントを調べます: getDeclaredConstructor()
パブリックコンストラクターのみを返すという参照は見られませんでした。
私の問題は、次のコードがあることです。
protected BaseClass internalCreate(String className) throws Exception {
Class<? extends BaseClass> classObj = Class.forName(className)
.asSubclass(BaseClass.class);
Constructor<?> ctor = classObj.getDeclaredConstructor((Class[]) null);
ctor.setAccessible(true);
return (BaseClass) ctor.newInstance();
}
デフォルトのコンストラクターの可視性 (パッケージ プライベート) を持つクラスに対してこのメソッドを実行すると、MissingMethod 例外が発生します。コンストラクターをパブリックに変更すると、問題が修正されます。