遍历哈希图并使用反射更改值



所以我正在编写一个基因算法,理想情况下,我首先在哈希图中放置一些浮点变量。这些将是传递给不同对象的基因。

genes.put("mass", 200);
genes.put("lifespan",0);
genes.put("intelligence",0);
genes.put("dexterity",0);
genes.put("endurance",0);

然后稍后我希望在变量发生变化时更新哈希图值。这是我到目前为止的代码;

if(updategenes){
for ( String key : genes.keySet() ) {
System.out.println( key );
try{
String a = key;
Field field = a.getClass().getField(key); 
genes.put(key,field);
}catch (NoSuchFieldException e) {
}catch (IllegalAccessException e) {
}}
updategenes = false;
}

唯一的问题是它不会接受 field 作为 int,即使这是当时唯一可能存在于 field 中的类型。有什么建议吗?

int strValue = (int) field.get (key);

如何通过反射从 Java 字段中获取字符串值?

最新更新