Java中的字段 setByte() 方法及示例
Java.lang.reflect.Field的setByte()方法用于将字段的值设置为指定对象上的字节。当您需要将对象字段的值设置为字节时,您可以使用此方法设置对象的值。
句法:
public void setByte(Object obj, byte b)
throws IllegalArgumentException,
IllegalAccessException
参数:此方法接受两个参数:
- obj :这是应该修改其字段的对象,并且
- b :这是被修改的 obj 字段的新值。
Return :此方法不返回任何内容。
异常:此方法引发以下异常:
- IllegalAccessException:如果此 Field 对象正在强制执行Java语言访问控制并且基础字段是不可访问的或最终的。
- IllegalArgumentException:如果指定的对象不是声明基础字段(或其子类或实现者)的类或接口的实例,或者展开转换失败。
- NullPointerException:如果指定的对象为 null 并且该字段是实例字段。
- ExceptionInInitializerError:如果此方法引发的初始化失败。
下面的程序说明了 setByte() 方法:
方案一:
// Java program to illustrate setByte() method
import java.lang.reflect.Field;
public class GFG {
public static void main(String[] args)
throws Exception
{
// create user object
Employee emp = new Employee();
// print value of leaveLeft
System.out.println(
"Value of leaveLeft before "
+ "applying setByte is "
+ emp.leaveLeft);
// Get the marks field object
Field field
= Employee.class
.getField("leaveLeft");
// Apply setByte Method
field.setByte(emp, (byte)2);
// print value of leaveLeft
System.out.println(
"Value of leaveLeft after "
+ "applying setByte is "
+ emp.leaveLeft);
// print value of age
System.out.println(
"Value of age before "
+ "applying setByte is "
+ emp.age);
// Get the marks field object
field = Employee.class.getField("age");
// Apply setByte Method
field.setByte(emp, (byte)56);
// print value of age
System.out.println(
"Value of age after "
+ "applying setByte is "
+ emp.age);
}
}
// sample class
class Employee {
// static byte values
public static byte age = 45;
public static byte leaveLeft = 12;
}
输出:
Value of leaveLeft before applying setByte is 12
Value of leaveLeft after applying setByte is 2
Value of age before applying setByte is 45
Value of age after applying setByte is 56
方案二:
// Java program to illustrate setByte() method
import java.lang.reflect.Field;
public class GFG {
public static void main(String[] args)
throws Exception
{
// create user object
User user = new User();
// Get the id field object
Field field = User.class
.getField("id");
// Apply setByte Method
field.setByte(user, (byte)20);
// print value of isActive
System.out.println(
"Value after "
+ "applying setByte is "
+ user.id);
}
}
// sample User class
class User {
// static byte values
public static byte id = 2;
}
输出:
Value after applying setByte is 20
参考: https: Java/lang/reflect/Field.html#setByte-java.lang.Object-byte-