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