Download Reflect_project/Reflect_module/src/Reflect_package1/Reflect_demo3.java from zxy0307/Java: direct link, hf CLI and curl.
- Browser
- Download file 2.4 kB
-
https://huggingface.co/zxy0307/Java/resolve/main/Reflect_project/Reflect_module/src/Reflect_package1/Reflect_demo3.java
- Command line
-
hf download hf://zxy0307/Java/Reflect_project/Reflect_module/src/Reflect_package1/Reflect_demo3.java
-
curl -L -o Reflect_demo3.java https://huggingface.co/zxy0307/Java/resolve/main/Reflect_project/Reflect_module/src/Reflect_package1/Reflect_demo3.java
2.4 kB
| package Reflect_package1; | |
| import java.lang.reflect.Field; | |
| public class Reflect_demo3 { | |
| public static void main(String[] args) throws ClassNotFoundException, NoSuchFieldException, IllegalAccessException { | |
| /* | |
| Class类中用于获取成员变量的方法 | |
| Field[] getFields () 返回所有公共成员变量对象的数组 | |
| Field[] getDeclaredFields () 返回所有成员变量对象的数组 | |
| Field getField (String name) 返回单个公共成员变量对象 | |
| Field getDeclaredField (String name) 返回单个成员变量对象 | |
| Field类中用于创建对象的方法: | |
| void set (Object obj, Object value) 赋值 | |
| Object get (Object obj) 获取值 | |
| */ | |
| //1、获取class字节码文件的对象 | |
| Class<?> clazz = Class.forName("Reflect_package1.Student"); | |
| //2、获取public成员变量 | |
| Field[] fields = clazz.getFields(); | |
| for (Field field : fields) { | |
| System.out.println(field); | |
| } | |
| System.out.println("========================="); | |
| //3、获取所有的成员变量 | |
| Field[] fields2 = clazz.getDeclaredFields(); | |
| for (Field field : fields2) { | |
| System.out.println(field); | |
| } | |
| System.out.println("========================="); | |
| //获取单个成员变量 | |
| Field g = clazz.getField("gender"); | |
| System.out.println(g); | |
| System.out.println("========================="); | |
| //获取权限修饰符 | |
| int modifiers = g.getModifiers(); | |
| System.out.println(modifiers); | |
| //获取成员变量名 | |
| String ge = g.getName(); | |
| System.out.println(ge); | |
| //获取成员变量的数据类型 | |
| Class<?> type = g.getType(); | |
| System.out.println(type); | |
| System.out.println("========================="); | |
| //获取成员变量记录的值 | |
| Student s = new Student("zhangsan", 23, "男"); | |
| Field name = clazz.getDeclaredField("name");//获取成员变量 | |
| name.setAccessible(true);//取消权限修饰符 | |
| Object value = name.get(s); | |
| System.out.println(value); | |
| //修改对象里面记录的值 | |
| name.set(s, "lisi"); | |
| System.out.println(s); | |
| } | |
| } | |