java反射初步了解

原文地址: https://blog.csdn.net/qq_42183409/article/details/88924176

简介

反射机制是指在运行状态中,对于任何一个类,都能够知道这个类的属性和方法;对于任何一个对象,都能调用他的属性的方法。

反射提供的功能:

在运行时判断任意一个对象所属的类

在运行时构造任意一个类的对象

在运行时判断任意一个类所具有的成员变量和方法

在运行时调用任意一个对象的方法

生成动态代理

通过反射获取类的三种方法:

通过Class.forName();

	// 需要抛个ClassNotFoundException 异常
	//通过类的全限定名获取Class对象, 基本类型无法使用此方法
   try {
			Class<?> forName = Class.forName("java.util.ArrayList");
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}

通过类名.

Class<?> forName = ArrayList.class;

通过对象.getClass( ),此方法需要NEW一对象出来

 List<String> list = new ArrayList<String>();
 Class<?> forName = list.getClass();

反射获取方法:

1.对象 .getMethods() 此方法可以获取所有的公共的方法
(本类,父类(包括object中的方法),以及接口中的所有方法,同时符合访问修饰符规律(private访问不到))

Class<?> forName = Class.forName("java.util.ArrayList"); 
forName .getMethods ( );

2.对象.getDeclareMethods() 来获取当前类的所有方法

Class<?> forName = Class.forName("java.util.ArrayList"); 
forName.getDeclareMethods( );

3.反射来带对类实例化

 Object instance = forname.newInstance();
 Person person=(person)instance ;
person.getMethods();

补充:
通过getInterface()方法获得所有接口 ,返回一个数组(多实现)
通过getSuperclass()来获取所有父类,返回单个值(单继承)
通过getConstructors(),来获取所有构造方法,返回数组
通过getFields()来获取所有公共属性,通过getDeclareFields()来获取当前类的所有属性,返回数组

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值