gpt4 book ai didi

java - 从字符串变量获取自定义对象属性值

转载 作者:太空宇宙 更新时间:2023-11-04 11:46:58 25 4
gpt4 key购买 nike

我知道在 JavaScript 中您可以调用 myCustomObject['something'] 并取回值。

有没有办法在 Java 中做到这一点?

我有一个自定义对象学生:

public class Student  {

private String name;
private String id;
private String year;
private String homeroom;

public String getName() { return name; }

public void setName(String name) { this.name = name; }

public String getId() { return id; }

public void setId(String id) { this.id = id; }

public String getYear() { return year; }

public void setYear(String year) { this.year = year; }

public String getHomeroom() { return homeroom; }

public void setHomeroom(String homeroom) { this.homeroom = homeroom; }

}

我想要一种调用方法来获取属性的方法,例如 Student.getValueForKey(key)。其中 key 可以是 Student 类的任何属性:姓名、id、年份等。

我不想调用实际的 getter:getId()getYear() 等...

我尝试过student[id],但该对象不是数组。我需要一种通过变量获取属性的方法。

最佳答案

1) 您可以使用反射来检索与字符串名称参数匹配的字段名称并获取关联的值。

2) 如果合适的话,一个更优雅的解决方案可以用 Enum 替换 Student 类来存储 Student 的属性,并用 EnumMap 实例来表示 Person:

public enum StudentAttributes {
NAME, ID, YEAR, HOME_ROOM;
}

然后执行:

EnumMap<StudentAttributes, String> studentOne = new EnumMap<StudentAttributes, String>(StudentAttributes.class);

studentMap.put(StudentAttributes.NAME, "john");
studentMap.put(StudentAttributes.YEAR, "1945");
...
String name = studentMap.get(StudentAttributes.NAME);
String year = studentMap.get(StudentAttributes.YEAR);

关于java - 从字符串变量获取自定义对象属性值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42258580/

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