Java反射-找不到方法

Java反射-找不到方法,java,reflection,Java,Reflection,我正在尝试找到准备语句的方法(ps): 但是没有找到。我必须使用Class.forName(“java.lang.Long”)而不是Long.Class 对于字符串,它可以工作: Method method = ps.getClass().getMethod("setString", int.class, Class.forName("java.lang.String")); method.setAccessible(true); method.invoke(ps, fieldIndex, va

我正在尝试找到
准备语句的方法
(ps):

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

对于字符串,它可以工作:

Method method = ps.getClass().getMethod("setString", int.class, Class.forName("java.lang.String"));
method.setAccessible(true);
method.invoke(ps, fieldIndex, value);
我做错了什么?有什么想法吗?Long的命名空间是否错误?

第二个参数是:

另外,对于字符串,您不需要调用
Class.forName(“java.lang.String”)
String.Class
也可以

但正如所评论的,如果您已经有了一个
PreparedStatement
instance,您可以简单地调用:

ps.setLong(fieldIndex, value);
第二个论点是:

另外,对于字符串,您不需要调用
Class.forName(“java.lang.String”)
String.Class
也可以

但正如所评论的,如果您已经有了一个
PreparedStatement
instance,您可以简单地调用:

ps.setLong(fieldIndex, value);

如果你已经掌握了所有的价值观,你到底为什么要使用反射呢?只需调用
ps.setLong(fieldIndex,value)
@Seelenvirtuose也许(人们总是希望如此)这就是传说中的一个。而
setAccessible
调用表示调用代码看不到这些方法。但它们是,所以也许MrSct只是认为它们不是:/I有一个字符串变量,告诉我必须使用哪种类型:Method Method=ps.getClass().getMethod(“set”+methodType,int.class,class.forName(getFullNameClass(methodType));这听起来还是个xy问题。实际类型由语句或目标列决定,无论您使用什么
set…
方法,驱动程序都会尝试将参数转换为目标类型。这将是非常奇怪的,如果你不能仅仅使用或…如果你已经掌握了所有的价值观,你到底为什么要使用反射?只需调用
ps.setLong(fieldIndex,value)
@Seelenvirtuose也许(人们总是希望如此)这就是传说中的一个。而
setAccessible
调用表示调用代码看不到这些方法。但它们是,所以也许MrSct只是认为它们不是:/I有一个字符串变量,告诉我必须使用哪种类型:Method Method=ps.getClass().getMethod(“set”+methodType,int.class,class.forName(getFullNameClass(methodType));这听起来还是个xy问题。实际类型由语句或目标列决定,无论您使用什么
set…
方法,驱动程序都会尝试将参数转换为目标类型。这将是非常奇怪的,如果你不能只是使用或…
ps.setLong(fieldIndex, value);