Java反射

public static void main(String[] args) {
		try {
			Class  cl= Class.forName("com.qcby.Person");
			Person p=  (Person) cl.newInstance();
	      	Field [] f =cl.getDeclaredFields();
			for( Field ff:f) {
					ff.setAccessible(true);
			}
			for( Field ff:f ) {
				System.out.println(ff);
				System.out.println(ff.get(p));
			}
			Method [] methods = cl.getDeclaredMethods(); 
			for( Method m: methods) {
				System.out.println(m);
			}
			String name = (String) p.getClass().getMethod("getName").invoke(p);
			System.out.println(name);
		    } catch (Exception e) {
			e.printStackTrace();
		}
		
	}

Static Class forName(String className):返回描述类名为className的class对象

Object newInstance():返回这个类的一个新实例

Object newInstance(Object[] args):构造一个这个构造器所属的类的新实例。参数args  这是提供给构造器的参数。

Void printStackTrace():将Throwable对象和栈的轨迹输出到标准错误流

Field[] getField():

Field [] getDeclaredFields():

getFields方法将返回一个包含Fields对象的数组,这些记录了这个类或其超类的公有域。getDeclaredFields方法返回包含Fields对象的数组,这些对象记录了这个类的全部域,如果类中没有域,或者class对象描述的是基本类型或数组类型,这些方法将返回一个数组长度为0的数组。

Methor [] getMethod对象的数组,getMethods将返回所有的公有方法,包括从超类中继承了的公有方法,getDeclareMethors返回这个类或者接口的全部方法,但不包括有超类继承了的方法。

Constructor[] getConstructors() 返回包含了Constructor对象的数组,其中包含了Class对象所描述的类的所有公共构造器,或者所有构造器。

Void setAccessible(boolean flag):

为反射对象设置可访问标志,flag为true表明屏蔽Java语言的访问检查,使得对象的私有属性也可以被查询和设置。

 

 

 

后待补充!

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值