Java反射 - 找不到方法

问题描述 投票:1回答:1

我试图找到PreparedStatement(ps)的方法:

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

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

对于String,它可以工作:

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

我究竟做错了什么?任何的想法? Long的名称空间错了吗?

java reflection
1个回答
9
投票

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

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

此外,对于String,您不需要调用Class.forName("java.lang.String")String.class也可以。

但是如评论所述,如果你已经有一个qazxsw poi实例,你可以简单地调用:

PreparedStatement
© www.soinside.com 2019 - 2024. All rights reserved.