0

次のような方法があります。

private <T> T _findEntity(Class<T> klass, Object entityId) {
    ...
}

リフレクションを介してこの関数を呼び出すために、以下のスニペットを試してみましたが、結果は失敗しました。

Method method = GenericPersistenceManager.class.getDeclaredMethod("_findEntity", Object.class, Object.class);
method.setAccessible(true);
Player player = (Player) method.invoke(genericPersistenceManager, Player.class, "str");

_findEntityJavaリフレクション経由のようなメソッドを呼び出す方法はありますか?

ありがとう

4

2 に答える 2

3

あなたは間違った方法を探しています。Classあなたのメソッドは、型 -との 2 つの引数を取りますObjectObjectそして、両方の引数をとるメソッドを探しています。

2 番目の引数を次のように変更する必要がありますClass.class

Method method = GenericPersistenceManager.class.getDeclaredMethod("_findEntity", 
                                                     Class.class, Object.class);
于 2013-09-01T14:17:08.210 に答える
1

通話を次のように変更します

Method method = GenericPersistenceManager.class.getDeclaredMethod("_findEntity", Class.class, Object.class);
于 2013-09-01T14:17:25.840 に答える