Java反射(一)-Class类的使用
2017-08-19 12:15
357 查看
在面向对象的世界里,万事万物皆对象。在java语言中,静态成员变量、普通数据类型不是对象。但普通数据类型有包装类。
类也是对象。类是java.lang.Class类的实例对象
任何一个类都是Class的实例对象,这个实例对象有三种表示方式。
类也是对象。类是java.lang.Class类的实例对象
任何一个类都是Class的实例对象,这个实例对象有三种表示方式。
package com.imooc.reflect; public class Main { public static void main(String[] args) { //Foo实例对象 Foo foo1 = new Foo(); //Foo这个类也是一个实例对象,Class的类如何表示呢 //任何一个类都是Class的实例对象,这个实例对象有三种表示方式 //第一种表示方式--->实际在告诉我们任何一个类都有一个隐含的静态成员 Class c1 = Foo.class; //第二种表示方式--->已经知道该类对象,通过getClass方法 Class c2 = foo1.getClass(); //c1,c2表示了Foo类的类类型(Class type) //不管是c1还是c2,都代表了Foo类的类类型,一个类只可能是Class类的一个实例对象 System.out.println(c1 == c2); //true //第三种表示方式 Class c3 = null; try { c3 = Class.forName("com.imooc.reflect.Foo"); } catch (ClassNotFoundException e) { e.printStackTrace(); } System.out.println(c2 == c3); // true //我们完全可以通过类的类类型创建该类的对象实例--->通过c1 or c2 or c3创建Foo类的实例 try { Foo foo = (Foo)c1.newInstance();//需要有无参数的构造方法 foo.print(); // foo } catch (InstantiationException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } } } class Foo { void print() { System.out.println("foo"); } }
相关文章推荐
- JAVA学习之反射(1):Class类和java.lang.reflect包的使用
- 使用反射创建Bean、Spring中是如何根据类名配置创建Bean实例、Java提供了Class类获取类别的字段和方法,包括构造方法
- Java反射(一)----- Class类的使用
- Java-反射(一) Class类的使用
- java基础之反射(2.class类的使用)
- Java反射学习总结(1)——Class类的使用
- java反射学习笔记(1)-----Class类的使用
- 使用反射创建Bean、Spring中是如何根据类名配置创建Bean实例、Java提供了Class类获取类别的字段和方法,包括构造方法
- 黑马程序员——【Java反射学习】Class类的使用
- JAVA 反射 之 class类的使用
- Java反射Class类的使用
- 19、Java入门—反射之Class类的使用
- 使用Java 5特性来简化反射编程
- JAVA反射使用手记
- java反射调用配置文件构造类对象,使用其方法
- JAVA反射和CLASS类
- 使用反射机制将纯Java对象放入数据库中
- java反射的使用
- java基础教程之Class类和反射API介绍
- 使用JAVA的反射机制反射带有数组参数的私有方法