Java反射机制
来源:互联网 发布:java基础教程pdf下载 编辑:程序博客网 时间:2024/05/03 00:22
一、反射的概念
1.反射是指程序在运行时,可以通过反射机制拿到任何一个类的内部所有信息。
2.可以获得类的所有属性信息,包括私有属性,并对其进行操作
3.可以获得对象所对应的类
4.可以拿到本类,或父类中的方法,并且对其进行操作。
二、Class对象的使用
常用方法:
getName:获得类对应的名称getDeclaredFields:获得类中所有参数 私有的也可以获取到getFields:只能获取共有的getDeclaredMethod:获得类中的所有方法getContructors:获得类中的构造方法newInstance:实例化对象
获取class对象的3中常用方式
1.通过forName方式
//path:类对应的完整路径=包名加类名Class demo1=Class.forName("com.tjpld.model.Book");
2.getClass方式
Book demo2=new Book();demo2.getClass();
3.类名.Class方式
//直接通过类名.ClassClass demo3=Book.class;Book book=demo3.newIntances();
三、Field对象—-Reflect包
用于表示类中,接口中所有属性对象的一个类
getName:获得属性的名称getType:获得属性的类型get(Object obj):取得obj对象中这个属性的值set(Object obj,Object value):向obj这个对象插入一个value值setAccessible(true):启用禁用访问权限
使用方法
1.testDemo(Class class){Field fields[]=class.getDeclaredFields() for(Field ff:fields){ system.out.prinft(ff.getName()+"/"+ff.getType()); }}2. testDemo2(Object obj){ Class class=obj.getClass(); Field fields[]=class.getDeclaredFields() for(Field ff:fields){ ff.setAccess; system.out.prinft(ff.getName()+"/"+ff.get(obj));//get方法并不能直接拿这个对象中的值,而是要先启用拿到值的权限 }}
Method方法的使用
常用方法
getName:方法名称getReturnType:方法的返回值类型invoke(Object obj,Object..args):根据object对象调用方法getParamterType:得到参数类型
使用方法:
showUser(Object obj){ Class cls=obj.getClass(); //方法名称 如果是多参数类型的方法 传值传入一个Class类型的数组Class[] cls={String.class,int.class} Method method=cls.getMethod("getName",String.class参数类型----没有用null); //调用多参数的方法 就传入一个object类型的数组 method.invoke(obj,参数----没有就new Object[0])}
0 0
- 【反射】JAVA反射机制
- 【Java】JAVA反射机制
- Java 反射机制[Field反射]
- Java 反射机制[Method反射]
- Java反射机制笔记-反射机制
- java的反射机制
- Java的反射机制
- java反射机制详解!
- Java反射机制
- Java的反射机制
- java 反射机制--侯捷
- java反射机制
- java反射机制
- [候捷]Java反射机制
- java 反射机制
- java 反射机制初探
- 关于Java反射机制
- java反射机制
- Cocoapods完整使用篇
- 使用设备树启动内核
- 2015杭电新生赛1008游乐场【神坑】
- 这样好用的ReactiveCocoa,根本停不下来【转载】
- OLAP简介
- Java反射机制
- [APUE]UNIX 标准化
- iOS笔记9
- 浅谈熵与贝叶斯
- reward
- 利用CSS中的After和Before解决CSS中的2个BUG
- Eclipse 插件安装方式
- [BZOJ1053][HAOI2007]反素数ant
- homerHEVC代码阅读(10)——基础结构之picture_t、slice_t、ctu_info_t