在Java中,如何获取给定字符串名称的属性?

蓬松:

很抱歉提出这样的问题,但我确实无法在Google中找到答案。假设我有一个课程,private String myColor并且有一个字符串“ myColor”。现在,我想操纵myColor属性。我怎样才能做到这一点?

编辑:对不起,一个不清楚的问题,我想最好的方法是解释我需要什么。我有一个Swing表单,想在加载gui时使用首选项api设置字段的值。因此,我可以读取所有字段,然后outputDirectoryTextField.setText(valueFromPrefsAPI);对每个字段进行处理,但这似乎是不需要的编码,因此我想使用带有字段名称的数组(哈希?)并遍历它们,如下所示:

String[] myTextInputs = {"thisInput", "thatInput"};

for (String inputName : myTextInputs) {
    String value = prefs.get(inputName, "");
    /* some code I'm seeking to find out*/.setText(value);
}
爸妈:

您可以使用反射来检查任何对象的内容,如下所示:

Object o = ...; // The object you want to inspect
Class<?> c = o.getClass();

Field f = c.getDeclaredField("myColor");
f.setAccessible(true);

String valueOfMyColor = (String) f.get(o);

请注意,getDeclaredField()将仅返回由对象的类声明的字段。如果要查找由超类声明的字段,则应遍历对象的所有类(通过重复执行c = c.getSuperclass()直到c == null)

如果要更改字段的值,可以使用set方法:

f.set(o, "some-new-value-for-field-f-in-o")

其他详细信息:https : //docs.oracle.com/javase/6/docs/api/java/lang/reflect/Field.html


https://docs.oracle.com/javase/7/docs/api/java/lang/Class.html#getField(java.lang.String)

您可以使用getField(...),如果未在类中找到,它将在超类上搜索。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在字符串中获取给定变量名称的值?

如何在Java中获取给定的日期字符串格式(模式)?

如何从Robot Framework获取给定字符串中的子字符串?

如何获取给定字符串的文件大小?

在python中获取给定字符串的日期列表

如何在JavaScript中获取给定替换字符串的所有组合?

如何获取给定字符串长度的字符串输入?

获取给定字符串中的子字符串位置

如何在Jquery中使用鼠标悬停获取给定字符串中的字符索引和字符

Scala如何在字符串中给定属性名称的情况下获取对象属性值?

如何提取给定字符之前的字符串前缀?

sql server 2012:函数获取给定字符串的位置,然后获取给定位置的字符串

如何获取给定正则表达式的所有子字符串?

在javascript或momentjs中获取给定的日期格式(指定格式的字符串)

与列匹配后需要获取给定字符串中的最大值

我想在字符串中获取给定令牌的值

在C#中获取给定文件的MD5哈希码(作为字符串)

如何在JavaScript中给定其字符串名称的对象属性(..的对象属性)设置?

如何在Java中获取方法的字符串名称?

仅从给定字符串中获取参数名称

我如何通过使用Java比较属性值和给定的字符串值来获取xml中子子标签的名称?

获取给定字符串的唯一子字符串列表

如何获取给定uint512_t整数的二进制等效字符串

JointjS:如何获取给定元素的属性?

如何以字符串形式获取属性名称?

C# 从字符串中获取属性名称

如何在Java中获取给定类的数组类?

如何从给定的字符串中获取JSON STRING

如何以字符串格式获取请求中的属性名称