Java反射 - 找不到方法

时间:2018-03-06 10:07:40

标签: java reflection

我正在尝试找到Method method = ps.getClass().getMethod("setLong", int.class, Class.forName("java.lang.Long")); method.setAccessible(true); method.invoke(ps, fieldIndex, value); (ps)的方法:

Method method = ps.getClass().getMethod("setString", int.class, Class.forName("java.lang.String"));
method.setAccessible(true);
method.invoke(ps, fieldIndex, value);

但未找到。我必须使用Class.forName(“java.lang.Long”)而不是Long.class。

对于String,它可以工作:

for

我做错了什么?任何的想法? Long的命名空间是错误的吗?

1 个答案:

答案 0 :(得分:10)

第二个参数是a long, not a Long

Method method = ps.getClass().getMethod("setLong", int.class, long.class);

此外,对于字符串,您无需致电Class.forName("java.lang.String")String.class也可以。

但是如评论所述,如果您已经有PreparedStatement个实例,则可以直接致电:

ps.setLong(fieldIndex, value);