有没有办法通过使用字段来设置原语的值?我试图玩弄以下内容,但似乎无法使其正常工作。
temp[i].setInt(new Object(), new Integer(data[0]));
在这种情况下, temp 将是声明字段的数组。当前索引 i 包含一个包含原始 int 值的字段。这种事情甚至可能吗?
有没有办法通过使用字段来设置原语的值?我试图玩弄以下内容,但似乎无法使其正常工作。
temp[i].setInt(new Object(), new Integer(data[0]));
在这种情况下, temp 将是声明字段的数组。当前索引 i 包含一个包含原始 int 值的字段。这种事情甚至可能吗?
假设您有一个Map
名为 的字段名称和值fieldValues
,并且您想在一个名为 的实例上设置值myObject
,则此代码将检查相应的原始类型,然后适当地设置其值。
for (String fieldName : fieldValues.keySet())
{
Field field = myObject.getClass().getField(fieldName);
if (field.getType().equals(Integer.TYPE))
{
field.setInt(myObject, Integer.parseInt(fieldValues.get(field.getName());
}
else if (field.getType().equals(Long.TYPE))
{
field.setLong(myObject, Long.parseLong(fieldValues.get(field.getName());
}
else if (field.getType().equals(Boolean.TYPE))
{
field.setBoolean(myObject, Boolean.parseBoolean(fieldValues.get(field.getName());
}
// more else branches for each needed primitive type
}