JAVA 之反射(基础概念) 几个主要常用的重要的方法

什么叫JAVA反射机制?

能够动态获取的信息以及动态调用对象的方法的功能称为JAVA语言的反射机制。

通过反射机制,能做什么?

正常的编译是将处于JVM中的字节码(CLASS文件)进行处理

可以在程序中访问已经装载到JVM中的JAVA对象的描述,实现访问检测修改描述JAVA对象本身信息的功能。

(1)访问构造方法:

    Constructor类的主要几个方法:

    getModifiers()  获得可以解析出该构造方法所采用修饰符的整数

    getParameterTypes() 按照声明顺序以Class数组的形式获得该构造方法的各个参数的类型

    getExceptionTypes() 以Class数组的形式获得该构造方法可能抛出的异常类型

    注意 : 如果是访问的构造方法,需要根据该构造方法的入口参数的类型来访问。例如:访问一个入口参数类型依次为String和int型的方法。

    objectClass.getDeclaredConstructor(String.class,int class);

    objectClass.getDeclaredConstructor(new Class[]{String.class,int class});

    

    通过java.lang.reflect.Modifier类可以解析出getModifier()方法的返回值所表示的修饰符信息,在该类中提供了一系列用来解析的静态方法,既可以查看是否被指定的修饰符修饰,还可以以字符串的形式获得所有修饰符。该类常用的静态方法如下:

    isPublic(int mod)           查看是否被public修饰,如果是则返回true,不是则返回false.

    toString(int mod)               以字符串的形式返回所有修饰符

(2)访问成员变量:

在通过下列一组方法访问成员变量时,将返回Field类型的对象与数组,每一个Field对象代表一个成员变量,利用Field对象可以操纵相应的成员变量。

如果是访问指定的成员变量,可以通过该成员变量的名称来访问,例如,访问一个名称为:birthday的成员变量,访问方法如下:

object.getDeclaredField("birthday");

(3)访问方法



经常用到的获取包名与类名:

(1)通过对象名:

对象名.getClass();

(2)通过类名:

类名.Class;

(3)通过反射来获取

Class.forName();

newInstance() :通过该构造方法的利用指定参数创建一个该类的对象,如果未设置参数则表示采用默认无参的构造方法


setAccessible(boolean flag) : 如果该构造方法的权限为:private,默认为不允许通过反射利用newInstance(Object...initargs)

方法创建对象。如果先执行该方法,并将入口参数设为"true",则允许创建。











评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值