gpt4 book ai didi

java - 使用 JAVA 反射时出现 NoSuchMethodException

转载 作者:行者123 更新时间:2023-12-01 16:05:08 24 4
gpt4 key购买 nike

您好,我正在尝试使用反射来调用方法并更新该方法的 setter 值。但我在调用该方法时遇到了 NoSuchMethodException 。我已经更新了代码。对于之前代码中的错误,我深感抱歉。我已经折射了代码。当类的 setMethod 接受原始类型参数时,会发生异常。

private static Object performMapping( Class voClass, Class[] clazz, Object voObject, Object data,String fieldType ){
voClass.getMethod( "set" + fieldType, clazz ).invoke( voObject, data );
return voObject;
}
private static Object mapField(ResultSet rs){
Class voClass=Class.forName( "com.test.Test" );
Object voObject = voClass.newInstance();
Class[] doubleArrayParamTypes = new Class[ 1 ];
doubleArrayParamTypes[ 0 ] = Double.class;
voObject = performMapping( voClass, doubleArrayParamTypes, voObject, rs.getDouble(fieldType.getColumn()), "Mark" );
}
/* This is my Class. I need to set the Mark. But it is primitive double. Is it possible to set the mark using the above code? */
public class Test{
private double mark;
public double getMark() {
return mark;
}
public void setMark(double mark) {
this.mark = mark;

最佳答案

我看到的是,您传递了 setAddress1 并将其与 set 连接起来,从而得到 setsetAddress1。要么传递属性名称并将其大写,要么从串联中删除 set

此外,您提供的代码将无法编译。您不能拥有名为 class

的变量

关于java - 使用 JAVA 反射时出现 NoSuchMethodException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2772126/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com