gpt4 book ai didi

java - 是否可以使用 JAVA 中保存变量名称的字符串来访问变量?

转载 作者:行者123 更新时间:2023-11-30 05:51:39 26 4
gpt4 key购买 nike

在Java中,如果我已经声明了一个字符串并且它包含变量的名称。我可以使用该字符串来访问该变量吗?例如

int sample=10;
String test = "sample";

这里,是否可以使用字符串测试来访问整数变量样本。如果是,那么如何。

最佳答案

反射(reflection)

Java 最强大的方面之一是标准库提供的强大的反射 API。

Reflection allows you examine and modify the structures and behaviour of classes, methods, and attributes at runtime.

在我看来,Reflection 可以单独响应当今可用的平台、框架和 JVM 语言的强大 Java 生态系统。

注意

虽然反射功能强大并且绝对是 Java 广泛成功的一部分,但我警告不要在许多情况下使用它。

大部分情况下都是反射 用于其他软件(框架、平台、语言等)所使用的软件中。一般来说,当我看到有人询问反射(reflection)时(特别是如果他们不直呼其名),他们对问题的思考是错误的。

我绝对想听听您的用例,以便我们可以建议一种不同的看待它的方式。

示例代码

下面是一些伪代码,说明了完成您想要做的事情的一种方法。我称其为伪代码,因为我还没有编译它,并且它可能会被优化。

在将其添加到您的项目之前,我想重申您应该发布您的具体问题,以便我们可以对其进行分析,并可能帮助您以不同的方式思考它。

final String ATTR = "test";
Class<?> clazz = Class.forName("your.fully.qualified.class.name");
Field[] fields = clazz.getFields();

for ( Field field : fields ) {
String name = field.getName();

if ( name == ATTR ) {
Object value = field.get(name);
}
}

关于java - 是否可以使用 JAVA 中保存变量名称的字符串来访问变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53795936/

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