📄 changefieldsdemo.java
字号:
import java.lang.reflect.*;
public class ChangeFieldsDemo
{
public static void main(String[] args)
{
//获取Class对象用来描述自定义类Employee
Class c = Employee.class;
try
{
//获取自定义类Employee中,对应名称的属性字段
Field f1 = c.getField("name");
Field f2 = c.getDeclaredField("age");
Field f3 = c.getDeclaredField("sex");
//创建Employee对象,初始化属性值
Employee em = new Employee();
//输出未改变成员变量前,各成员变量的值
System.out.println("Before Change:");
System.out.println(em.get_name());
System.out.println(em.get_age());
System.out.println(em.get_sex()+"\n");
//使用Field对象的set方法,改变成员变量的值
f1.set(em, "Xuq");
f2.setInt(em, 23);
f3.setAccessible(true);
f3.set(em, "female");
//输出改变成员变量后,各成员变量的值
System.out.println("After Change:");
System.out.println(em.get_name());
System.out.println(em.get_age());
System.out.println(em.get_sex());
}
catch (SecurityException e) {e.printStackTrace();}
catch (NoSuchFieldException e) {e.printStackTrace();}
catch (IllegalArgumentException e) {e.printStackTrace();}
catch (IllegalAccessException e) {e.printStackTrace();}
}
}
class Employee //自定义类
{
public String name;
int age;
private String sex;
public Employee() //无参数构造方法
{
name = "wangxyw";
age = 24;
sex = "male";
}
//含参数构造方法
public Employee(String name,int age,String sex)
{
this.name = name;
this.age = age;
this.sex = sex;
}
//获取自定义类属性值方法
public String get_name(){return name;}
public int get_age(){return age;}
public String get_sex(){return sex;}
//自定义类改变属性值方法
public void setAll(String name,int age,String sex)
{
this.name = name;
this.age = age;
this.sex = sex;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -