From 1e1927ec45c8b2e3a14e90dd2053ef854b01c978 Mon Sep 17 00:00:00 2001 From: xuxin <840198532@qq.com> Date: Thu, 2 Apr 2026 10:06:06 +0800 Subject: [PATCH] =?UTF-8?q?=E8=BF=9B=E9=98=B6day12-=E5=8F=8D=E5=B0=84?= =?UTF-8?q?=E6=93=8D=E4=BD=9C=E5=B1=9E=E6=80=A7(=E5=B1=9E=E6=80=A7?= =?UTF-8?q?=EF=BC=9A=E8=B5=8B=E5=80=BC=20/=20=E5=8F=96=E5=80=BC)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/com/inmind/refelct02/FieldDemo06.java | 46 +++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 javaSE-day12/src/com/inmind/refelct02/FieldDemo06.java diff --git a/javaSE-day12/src/com/inmind/refelct02/FieldDemo06.java b/javaSE-day12/src/com/inmind/refelct02/FieldDemo06.java new file mode 100644 index 0000000..841d12f --- /dev/null +++ b/javaSE-day12/src/com/inmind/refelct02/FieldDemo06.java @@ -0,0 +1,46 @@ +package com.inmind.refelct02; + +import org.junit.Test; + +import java.lang.reflect.Field; + +/* +7.反射操作属性 +属性的作用:赋值 / 取值 +Field对象的set/get方法 + */ +public class FieldDemo06 { + public static void main(String[] args) { + //普通的属性操作 + Student s = new Student(); + //赋值:1.对象名 2.属性名 3.属性值 + s.name = "张三"; + //取值:1.对象名 2.属性名 + System.out.println(s.name); + } + + //反射操作属性 + @Test + public void method1() throws NoSuchFieldException, IllegalAccessException { + //反射的前提 + Student s = new Student(); + Class clazz = s.getClass(); + + //获取name属性对象 + Field nameField = clazz.getDeclaredField("name"); + System.out.println(nameField.getName());//获取属性名 + System.out.println(s.name); + /* + 赋值 + void set(Object obj, Object value) 将指定的对象参数中由此 Field对象表示的字段设置为指定的新值。 + */ + nameField.set(s,"张三"); + + /* + 取值 + Object get(Object obj) 返回由该 Field表示的字段在指定对象上的值。 + */ + Object nameVal = nameField.get(s); + System.out.println(nameVal); + } +}