","")-6ren"> ","")-我试图通过使用反射来避免对配置类的序列化进行硬编码,但我遇到了一种我无法解决任何问题的情况。这就是我想要做的。 我有这样一个类 public class Configuration { publ-6ren">
gpt4 book ai didi

java - 使用反射动态保存一个类中的所有字段? ("","")

转载 作者:塔克拉玛干 更新时间:2023-11-02 18:59:13 24 4
gpt4 key购买 nike

我试图通过使用反射来避免对配置类的序列化进行硬编码,但我遇到了一种我无法解决任何问题的情况。这就是我想要做的。

我有这样一个类

public class Configuration {

public boolean bool = false;
public int integer = 1;
public int[] intArray = {0, 1};

}

我想使用反射将名称和值保存到 属性字段。

--properties--
bool=false
integer=1
intArray=0,1

名称部分非常简单。我的问题是获取每个字段的值,尤其是获取每个 int[] 的值。除了数组之外,所有值都是原始值,因此 toString() 可以正常工作。

谁能展示比 Oracle 更好的示例并帮助我?

最佳答案

你必须使用数组吗?如果不是,您可以将您的对象表示为列表,这将打印整数的列表表示。

public boolean bool = false;
public int integer = 1;
public int[] intArray = {0, 1}; // <-- This prints array's memory address
public List<Integer> intList = Arrays.asList(1, 2 , 3); // <-- This prints [1,2,3]

public static void main(String[] args) throws Exception {
Config c = new Config();
for ( Field f : c.getClass().getDeclaredFields() ) {
System.out.println(f.get(c));
}

}

或者,您可以在运行时执行此操作。

if ( "int[]".equals(f.getType().getSimpleName() ) ) {
// do stuff
}

关于java - 使用反射动态保存一个类中的所有字段? ("<FieldName>","<FieldValue>"),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9171014/

24 4 0