Java的反射机制
来源:互联网 发布:海贼王漫画 知乎 编辑:程序博客网 时间:2024/06/03 21:24
Java的反射机制,是在运行的状态中,对与任何一个类,都能够知道这个类所有的属性和方法。对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制。
简而言之,通过反射,我们可以在运行时获得程序或程序集中每一个类型的成员和成员的信息。
反射机制获取类有三种方法:
1.使用Class类的forName静态方法
Class c1=Class.forName("类名");
2.直接获取某一个对象的class(Java中每个类型都有class属性):
Class<?> c2=int.class;Class<?> classInt=Integer.Type;
3.调用某个对象的getClass()方法(Java中的每个对象都有getClass方法):
StringBuilder str=new StringBuilder("123456");Class<?> c3=str.getClass();
创建实例(两种方法)
1.使用Class对象的newInstance()方法 来创建Class对象对应的实例
Class<?> c=String.class;Object str=c.newInstance();
2.先通过Class对象获取指定的Constructor对象,在调用Constructor对象的newInstance()来创建实例。这种方法可以用指定的构造器构造类的实例。
Class<?> c=String.class; //获取String所对应的Class对象Constructor constructor = c.getConstructor(String.class); //获取String类带一个String参数的构造器Object obj = constructor.newInstance("hello,world"); //根据构造器创建实例System.out.println(obj);
获取属性
//获取整个类Class c=Class.forName("java.lang.Integer");//获取所有的属性Field[] fs=c.getDeclaredFields();//定义可变长的字符串,用来存储属性StringBuffer stringBuffer=new StringBuffer();//通过追加的方法,将每个属性拼接到此字符串中//最外边的public定义stringBuffer.append(Modifier.toString(c.getModifiers())+" class "+c.getSimpleName()+" {\n");//里面的每一个属性for(Filed field:fs){ //空格 stringBuffer.append("\t"); //获得属性的修饰符,例如public,static等等 stringBuffer.append(Modifier.toString(filed.getModifiers())+" "); //属性的类型的名字 stringBuffer.append(field.getType().getSimpleName()+" "); //属性的名字+回车 stringBuffer.append(field.getName()+";\n");}stringBuffer.append("}");
阅读全文
1 0
- java的反射机制
- Java的反射机制
- Java的反射机制
- Java 的反射机制
- JAVA的反射机制
- Java 的反射机制
- java的反射机制
- Java的反射机制
- Java 的反射机制
- JAVA的反射机制
- Java 的反射机制
- java的反射机制
- java的反射机制
- java的反射机制
- Java的反射机制
- Java的反射机制
- Java的反射机制
- Java的反射机制
- Xutils的使用和listview的显示网络数据
- Android开发常用网址
- QT5知识点记录梳理(一)
- hdu 3635(并查集的应用)
- openresty招聘
- Java的反射机制
- 融云发布公告:五大高级功能将全面开放
- windows配置thrift开发环境
- 用C代码写贪吃蛇游戏--打印食物
- 数据库新增同时获得自增字段数据
- ueditor单独调用图片上传
- 图结构练习——判断给定图是否存在合法拓扑序列(topo)
- ie兼容问题
- LintCode python 小白-简单题-457经典二分查找问题