JAVA反射机制

什么是java的反射机制?

java 反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制.

java反射机制的作用

是用来编写一些通用性较高的代码或者框架时使用。

反射常用对象

  • Class:Class类的实例表示正在运行的Java应用程序中的类和接口
  • Constructor:关于类的单个构造方法的信息以及对它的访问权限
  • Field:Field提供有关于类和接口的单个字段的信息,以及对它的动态访问权限。
  • Method:method提供关于类或接口上单独某个方法的信息。

Class类

Java中java.lang,Class类用于表示一个类的字节码(.class)文件

如何得到某个class文件对应的class对象?

1.已知类和对象的情况下
类名.class
对象.getclass() —object类提供

2.未知类和对象情况下
Class.forName(“包名.类名”)

Constructor类

Constructor类的实例对象代表了一个类的构造方法

得到某个类的所有构造方法:

Constructor [ ] constructor=class .forName("java.lang.String").getConstructors();

得到指定的构造方法并调用:

Constructor constructor =Class.forName("java.lang.String").getConstruct(string.class);
string str=(string)constructor.newInstantce("abc");

Field类

Field类代表某个类的一个成员变量,并提供动态的访问权限

field对象的获得
得到所有的成员变量:

Field [ ] fields =a.getFields(); // 取得所有的public 属性,包括父类继承。
Field [ ] fields =a.getDeclaredFields(); // 取得所有的声明属性。

得到指定的成员变量:

Field name = a.getField("name");
Field name a.getDeclaredField("name");

设置Field变量是否而已访问:

field.setAccessible(boolean);

Method类

Method代表某个类中的成员方法

Method对象的获得:
1.获取所有方法:

getDeclaredMethods();
getMethods();

2.获取指定方法:

getDeckaredMethod(String name,Class<?>...parameterTypes)
getMethod(String name,Class<?>...parameterTypes)

通过反射执行方法
invoke(object obj,Object…args)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值