java setchar_Java Field.setChar方法代码示例

import java.lang.reflect.Field; //导入方法依赖的package包/类

public static void setField(Object instance, Field field, Object value) throws IllegalAccessException {

if (value == null && field.getType().isPrimitive()) {

return;

}

if (UNSAFE != null) {

if (int.class.equals(field.getType())) {

((sun.misc.Unsafe) UNSAFE).putInt(instance, ((sun.misc.Unsafe) UNSAFE).objectFieldOffset(field), (int) value);

} else if (long.class.equals(field.getType())) {

((sun.misc.Unsafe) UNSAFE).putLong(instance, ((sun.misc.Unsafe) UNSAFE).objectFieldOffset(field), (long) value);

} else if (double.class.equals(field.getType())) {

((sun.misc.Unsafe) UNSAFE).putDouble(instance, ((sun.misc.Unsafe) UNSAFE).objectFieldOffset(field), (double) value);

} else if (void.class.equals(field.getType())) {

} else if (float.class.equals(field.getType())) {

((sun.misc.Unsafe) UNSAFE).putFloat(instance, ((sun.misc.Unsafe) UNSAFE).objectFieldOffset(field), (float) value);

} else if (byte.class.equals(field.getType())) {

((sun.misc.Unsafe) UNSAFE).putByte(instance, ((sun.misc.Unsafe) UNSAFE).objectFieldOffset(field), (byte) value);

} else if (char.class.equals(field.getType())) {

((sun.misc.Unsafe) UNSAFE).putChar(instance, ((sun.misc.Unsafe) UNSAFE).objectFieldOffset(field), (char) value);

} else if (boolean.class.equals(field.getType())) {

((sun.misc.Unsafe) UNSAFE).putBoolean(instance, ((sun.misc.Unsafe) UNSAFE).objectFieldOffset(field), (boolean) value);

} else if (short.class.equals(field.getType())) {

((sun.misc.Unsafe) UNSAFE).putShort(instance, ((sun.misc.Unsafe) UNSAFE).objectFieldOffset(field), (short) value);

} else {

((sun.misc.Unsafe) UNSAFE).putObject(instance, ((sun.misc.Unsafe) UNSAFE).objectFieldOffset(field), value);

}

} else { //Fallback if unsafe isn't available

field.setAccessible(true);

if (int.class.equals(field.getType())) {

field.setInt(instance, (int) value);

} else if (long.class.equals(field.getType())) {

field.setLong(instance, (long) value);

} else if (double.class.equals(field.getType())) {

field.setDouble(instance, (double) value);

} else if (void.class.equals(field.getType())) {

} else if (float.class.equals(field.getType())) {

field.setFloat(instance, (float) value);

} else if (byte.class.equals(field.getType())) {

field.setByte(instance, (byte) value);

} else if (char.class.equals(field.getType())) {

field.setChar(instance, (char) value);

} else if (boolean.class.equals(field.getType())) {

field.setBoolean(instance, (boolean) value);

} else if (short.class.equals(field.getType())) {

field.setShort(instance, (short) value);

} else {

field.set(instance, value);

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值