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

时间:2018-12-15 18:13:31

标签: java string variables

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

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

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

1 个答案:

答案 0 :(得分:1)

反射

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

  

Reflection使您可以在运行时检查和修改类,方法和属性的结构和行为。

在我看来,

反思是对当今强大的平台,框架和JVM语言的Java生态系统的唯一反应。

警告

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

大部分是反思  用于其他软件(框架,平台,语言等)使用的软件。通常,当我看到有人问反思时(特别是如果他们没有按名称来称呼它的时候),他们是在思考问题所在。

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

示例代码

下面是一些伪代码,它们说明了完成您要尝试执行的操作的一种方法。我称它为伪代码,因为我尚未对其进行编译,因此可能对其进行了优化。

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

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);
   }
}