0

有没有办法通过使用字段来设置原语的值?我试图玩弄以下内容,但似乎无法使其正常工作。

temp[i].setInt(new Object(), new Integer(data[0]));

在这种情况下, temp 将是声明字段的数组。当前索引 i 包含一个包含原始 int 值的字段。这种事情甚至可能吗?

4

1 回答 1

1

假设您有一个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
}
于 2013-07-04T22:51:03.540 回答