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");

那么有没有办法_findEntity通过Java反射调用方法?

谢谢

4

2 回答 2

3

您正在寻找错误的方法。您的方法采用两个类型的参数 -ClassObject。您正在寻找Object同时作为两个参数的方法。

您应该将第二个参数更改为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 回答