gpt4 book ai didi

java - 实例化对象名称并设置其值的通用方法

转载 作者:行者123 更新时间:2023-11-30 03:30:06 27 4
gpt4 key购买 nike

我想知道是否有一种方法可以让您使用字符串创建对象喜欢

Class<?> classObject = Class.forName("Client");
Object object = classObject.getConstructor().newInstance();

但能够将变量的值设置为字段的名称

所以:

Field[] fields = object.getClass().getDeclaredFields();
for (int i=0; i< fields.length; i++)
{
object.???????? = fields[i].getName();
}

所以我会有object.name =“name”,object.address =“address”等

我不确定如何使用我创建的实例的属性。

有人知道如何做到这一点吗?

谢谢!

最佳答案

以下是如何执行此操作的一个小示例:

package test;

import java.lang.reflect.Field;

public class Test {

public static void main(String... args) throws Exception {
Class<?> object = Class.forName("test.Property");
Object o = object.getDeclaredConstructor().newInstance();
System.out.println(o);
Field testField = object.getDeclaredField("test");
Field nameField = object.getDeclaredField("name");
testField.setAccessible(true);
testField.set(o, "Hello");
testField.setAccessible(false);
nameField.setAccessible(true);
nameField.set(o, "Name");
nameField.setAccessible(false);
System.out.println(o);
}

}

class Property {

private String test;
private String name;

@Override
public String toString() {
return "Property{" + "test=" + (test == null ? "null" : test) + ", name=" + (name == null ? "null" : name) + '}';
}
}

关于java - 实例化对象名称并设置其值的通用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29254365/

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