标签:style blog http io color ar java for sp
反射
????正常情况下,我们必须知道一个类的完整路径后才可以实例化对象,但是在Java也可以通过一个对象来找到其所在类的信息,这其实就是Class的功能。
package reflect; class X{ ???? } public class GetClassDemo01 { ????public static void main(String[] args) { ????????X x=new X(); ????????System.out.println(x.getClass().getName()); ????} } |
可以看到此时的所有操作都是反着来,这就是反射。
Class
????Class本身表示一个类的本身,通过Class可以完整的得到一个类的完整结构,包括此类中的方法定义、属性定义等。
?
此类在jdk中文档中没有发现任何构造方法,所以此类的构造方法是被私有化了。
实例化Class 类对象的三种方式
????? 第一种:通过forName()方法
????? 第二种: 通过类class
????? 第三种: 通过对象.getClass()
package reflect; class X{ ???? } public class GetClassDemo01 { ????public static void main(String[] args) { ????????Class <?> c1=null; ????????Class <?> c2=null; ????????Class <?> c3=null; ????????try { ????????????//通过第一种方式实例化Class对象,这种方法也是最常用的一种形式 ????????????c1=Class.forName("reflect.X"); ????????????//通过Object类中的放过实例化Class对象 ????????????c2=new X().getClass(); ????????????//通过类.cass实例化Class ????????????c3=X.class; ????????????System.out.println("类名称:" + c1.getName() ); ????????????System.out.println("类名称:" + c2.getName() ); ????????????System.out.println("类名称:" + c3.getName() ); ????????} catch (ClassNotFoundException e) { ????????????// TODO Auto-generated catch block ????????????e.printStackTrace(); ????????} ????} } |
?
?
?
?
?
?
?
?
?
?
?
?
?
?
标签:style blog http io color ar java for sp
原文地址:http://www.cnblogs.com/yueyazhishang/p/4064191.html