java - 循环javaBean属性

标签 java loops attributes iteration javabeans

我有一个java bean

public class Bean {

private Object field1;
private Object field2;

public Object getField1() {
    return field1;
}

public void setField1(Object field1) {
    this.field1 = field1;
}

public Object getField2() {
    return field2;
}

public void setField2(Object field2) {
    this.field2 = field2;
}
}

我想设置字段,所以我要进行硬编码

Bean c1 = new Bean();

c1.setField1(hmap.get(headers[1]));
c1.setField2(hmap.get(headers[2]));

我想用一个循环来完成此操作,因为我有 17 个字段。

for (count = 1; count < headers.length; count++) {
c1.setField1,2,3...("Parameter_" + count, messages.getString("field." + headers[count]));}

我该如何实现这个?使用 JDK 16

最佳答案

使用Reflection ,如下:

    Bean c1 = new Bean();

    c1.setField1("Object 1");
    c1.setField2("Object 2");

    for (int count = 1; count < headers.length; count++) 
    {
        //concatenate to get method name
        String methodName = "getField" + count;

        // using reflection, get collection of all methods in Bean class
        Method[] methods = Bean.class.getMethods();

        for(Method method : methods)
        {
            if (method.getName().equals(methodName))
            {
                // if it's the method you want, invoke it using 
                // the required params
                method.invoke("Parameter_" + count, messages.getString("field." + headers[count]));
            }
        }
    }

关于java - 循环javaBean属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31410439/

相关文章:

java - 如何连接int和string

java - 使用 Gradle 的 JAR 中的 META-INF/服务

c# - 您能否通过显式传递值来覆盖自动捕获的参数的值?

java - 迭代对象列表并验证属性 (int) 是否相互跟随(例如 : (1, 2,3,4)、(3,4,5,6),但不是 (1,2,5) 或 (3,4,5 ,7))

java - 将字节缓冲区中的字节转换为整数

java - Gson 嵌套无名数组

javascript - 如何在 for 循环中对具有精确索引的元素重复迭代?

c++ - 如何生成仅包含 0's and 9' 的数字

c - 遍历 C 中的多个数组

来自资源文件的 C# 属性文本?