java反射
来源:互联网 发布:创业软件 俞青 编辑:程序博客网 时间:2024/06/18 08:58
看百度说以后学web框架才用得到,现在也不理解这东西到底能干嘛,跟着别人敲了点代码。先预习
package com.cyh.test1;import java.io.File;import java.io.FileInputStream;import java.lang.reflect.Field;import java.lang.reflect.Method;import java.util.Scanner;class Book{ public int value; public String name; private boolean bo; public Book(){ System.out.println("构造"); } public void fun1(){ System.out.println("公共方法"); } private void fun2(){ System.out.println("私有方法"); } public String toString(){ return this.value + this.name + this.bo; }}public class Demo3 { public static void main(String[] args) throws Exception{ Book book = new Book(); //获取到类名称 Class c1 = book.getClass(); Class c2 = Book.class; Class c3 = Class.forName("com.cyh.test1.Book"); System.out.println(c1); System.out.println(c2); System.out.println(c3); //获取到公共字段 (Filed类表示类中的一个字段) Field[] field = c1.getFields(); for (Field f : field){ System.out.println("公共字段"+f.getName()); } //获取到所有的字段 field = c1.getDeclaredFields(); for (Field f : field){ System.out.println("所有字段:"+f.getName()); } //获取类中公共方法, 有继承的方法 Method[] me = c1.getMethods(); for (Method m : me){ System.out.println("公共方法"+m.getName()); } //获取类中的所有方法, 但不包括继承的方法 me = c1.getDeclaredMethods(); for (Method m : me){ System.out.println("类中所有方法"+m.getName()); } //通过属性给指定的对象设置值 //通过类创建一个对象 Object obj = c1.newInstance(); field[0].set(obj, 30); field[1].set(obj, "三国"); //field[2].setBoolean(obj, true); 因为该字段不可见,所以无法设置属性值 //输出c1对象 System.out.println(obj.toString()); }}
这三个返回的都是同一个Class对象
Class c1 = book.getClass(); Class c2 = Book.class; Class c3 = Class.forName("com.cyh.test1.Book");
得到这个Class就可以通过newInstance()方法创建一个Class的对象,有了这个对象还需要两个重要的类Field和Method获取类中的属性和方法
阅读全文
0 0
- 【反射】JAVA反射机制
- JAVA 反射
- java 反射
- Java反射
- java反射
- java反射
- JAVA反射
- java 反射
- Java 反射
- java 反射
- Java反射
- java反射
- JAVA 反射
- java 反射
- Java反射
- java反射
- java 反射
- java 反射
- vue的学习记录-例题
- Codeforces816A Karen and Morning
- poi3.9导入导出 讲解实例
- JDE表对应DB视图
- Python3 字符串操作
- java反射
- 网页中嵌套图片的输出格式说明
- 面试 42-1:翻转单词顺序
- asp 指定读取某篇文章
- c语言中.c与.h文件详解
- 【算法】图的应用--城市之间需要转的机数
- u-boot第二阶段分析(三)
- Python接口自动化测试框架httpautotest
- Linux 下安装 numpy 和 scipy