gpt4 book ai didi

java - 使用变量名称获取变量的值,作为变量值传递

转载 作者:行者123 更新时间:2023-11-29 05:58:44 26 4
gpt4 key购买 nike

使用 Java,我必须从 XML 文件中获取多组值才能在我的代码中使用。碰巧的是,我检索的值之一是静态变量的名称(其值在类文件中定义。)我需要找到一种方法来使用名称获取静态变量的值我从 XML 文件中获取的变量。

帮忙吗?

最佳答案

您可以使用 Class.forName加载类(如有必要;如果您直接引用它,只需使用 ClassName.class),然后 Class#getFieldField#get为此:

import java.lang.reflect.*;

public class GetTheStatic {
public static final void main(String[] args) {
String className;
String fieldName;
Class cls;
Field fld;
String value;

if (args.length != 2) {
System.out.println("Need [classname] [fieldName]");
System.exit(-1);
}

try {
className = args[0];
fieldName = args[1];

cls = Class.forName(className);
fld = cls.getField(fieldName);
value = (String)fld.get(cls);
System.out.println("Field value is " + value);
System.exit(0);
}
catch (Exception e) {
System.out.println("Exception: " + e.getMessage());
System.exit(-1);
}
}
}

假设我有另一个类:

public class TheStatic {
public static String foo = "bar";
}

然后这个:

java GetTheStatic TheStatic foo

输出

Field value is bar

关于java - 使用变量名称获取变量的值,作为变量值传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11012751/

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