gpt4 book ai didi

java - 在 Java 中按名称设置变量

转载 作者:太空狗 更新时间:2023-10-29 22:49:16 25 4
gpt4 key购买 nike

我希望按照以下方式在 Java 中实现一些东西:

class Foo{
private int lorem; //
private int ipsum;

public setAttribute(String attr, int val){
//sets attribute based on name
}

public static void main(String [] args){
Foo f = new Foo();
f.setAttribute("lorem",1);
f.setAttribute("ipsum",2);
}

public Foo(){}
}

...其中变量是根据变量名设置的,变量名没有硬编码,也没有使用任何其他数据结构。这可能吗?

最佳答案

下面是使用反射实现 setAttribute 的方法(我已经重命名了函数;不同的字段类型有不同的反射函数):

public void setIntField(String fieldName, int value)
throws NoSuchFieldException, IllegalAccessException {
Field field = getClass().getDeclaredField(fieldName);
field.setInt(this, value);
}

关于java - 在 Java 中按名称设置变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/276555/

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