我有一个方法如下:
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");
那么有没有办法通过Java反射调用像_findEntity
这样的方法?
由于
答案 0 :(得分:3)
您正在寻找错误的方法。您的方法采用两个类型的参数 - Class
和Object
。而且您正在搜索将Object
作为两个参数的方法。
您应该将第二个参数更改为Class.class
:
Method method = GenericPersistenceManager.class.getDeclaredMethod("_findEntity",
Class.class, Object.class);
答案 1 :(得分:1)
将您的电话改为
Method method = GenericPersistenceManager.class.getDeclaredMethod("_findEntity", Class.class, Object.class);