Java 反射---获取Class的三种方式
2016-04-01 20:56
519 查看
public class ClassDemo1 { public static void main(String[] args) throws ClassNotFoundException, InstantiationException, IllegalAccessException{ //Foo的实例对象如何表示 Foo foo1=new Foo();//foo1就表示出来了 //Foo这个类 也是一个实例对象,Class类的实例对象如何表示 //任何一个类都是Class类的实例对象,这个实例对象有3中表示方式 /*第一种表示方式--》实际在告诉我们任何一个类都有一个隐含的静态成员变量*/ Class c1=Foo.class; /*第二种表达方式:已知该类的对象,通过getClass方法*/ Class c2=foo1.getClass(); /*官网:c1/c2表示了Foo类的类类型(class type) * 类也是对象,是class类的实例对象 * 这个对象我们成为该类的类类型 * */ /*不管c1 or c2都代表了Foo类的类类型,一个类只可能是Class类的一个对象*/ System.out.println(c1==c2);//true //第三种表达方式 Class c3=null; c3=Class.forName("ShuiTian.NaiLuo.Reflect.Foo"); System.out.println(c3); /*我们完全可以通过类的类类型创建该类的对象 * 通过c1 or c2 or c3创建父的实例 * * */ Foo foo=(Foo)c1.newInstance();//使用newInstance需要有无参数的构造方法 } } class Foo{ }
相关文章推荐
- JavaMail 邮件开发
- struts2 中使用request.getInputStream() 获取POST数据
- Struts2核心工作原理解析
- JavaWeb 后端 <十四> 文件上传下载
- Java IO流基本操作
- java异常处理的学习笔记
- 【深入spring】IoC容器的实现
- java之文件
- 回归基础系列-快速排序[JAVA]
- 回归基础系列-选择排序[JAVA]
- java中getResourceAsStream(String path)与getClassLoader.getResourceAsStream(String path)
- 回归基础系列-插入排序[JAVA]
- 回归基础系列-冒泡排序-[JAVA]
- JavaEE_4_1_jsp的四个内置对象作用域
- Java使用SSLSocket通信
- MyBatis中配置Spring的事物
- 在eclipse中如何产看源码
- Java泛型入门
- Spring中属性文件properties的读取与使用
- Java 构造器之访问子类对象的实例变量