Java反射

**反射:**在程序员运行过程中,可以对任意对象一个类型进行任意的操作。例如在加载任意类型,调用类型的任意方法,获取任意的成员变量,构造方法,可以创建该类型的对象

Class类:在程序运行期间,Java运行时系统始终为所以对象维护一个运行时类型标识;这个标识会跟踪每个对象所属的类,保存这些信息的类型为Clas;我们成Class类为类的字节码对象
获取字节码的三种方法:
1.对象名.getClass();

public class Demo {

	public static void main(String[] args) {
		Person p = new Person();
		Class c = p.getClass();
		System.out.println(p.getClass());
	}
}

class Person{
	private int i = 0;
	private String name = "zs";
}

2、类名.class

public static void main(String[] args) {
		Class c = Person.class;
	}
}

class Person{
	private int i = 0;
	private String name = "zs";
}

3、通过Class.forName(String classname)

	public static void main(String[] args) throws Exception{
		String name = "com.wzl.day.Person";
		  Class c = Class.forName(name);
	}
}

class Person{
	private int i = 0;
	private String name = "zs";
}

通过字节码对象创建真正的实体对象:
在字节码对象中有一个比较实用的方法,也是非常常用的方法:newInstance();

	String name = "com.wzl.day.Person";
		  Class c = Class.forName(name);
		  Person p  = (Person)c.newInstance();
		  Person pp = Person.class.newInstance();
		  
	}
}

class Person{
	private int i = 0;
	private String name = "zs";
}

反射是一个强大且复杂的机制。主要是开发工具的程序员对它感兴趣,一般的应用程序员并不需要考虑反射机制。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值