カスタムクラスローダーを使用してクラスのインスタンスを作成して返すと、これは問題なく機能するようですが、(Reflection APIを介して)メソッドを呼び出して、以下に説明するようにカスタムオブジェクトを渡そうとすると、次のようになりますNoSuchMethodException
。
カスタムクラスローダーが次のようなインスタンスを作成して返すと仮定します。
Object obj = customClassLoader.load(String className,Class[] paramTypes,Object[] param)
次に、(リフレクションを介して)メソッドを呼び出し、カスタムオブジェクトを渡します。
注:これはエラーの原因となる行です
Method m = obj.getClass.getDeclaredMethod("mName",new Class[]{aCustomObject.class})
m.invoke(obj,new Object[]{new CustomObject() })
指定されたカスタムオブジェクトを取得するメソッドが確実に存在するため、例外の原因となる可能性があることに困惑しています。リフレクションを使用してすべてのメソッドを一覧表示することでこれを確認しました。