Java —— Reflect反射机制
2016-04-16 19:45
471 查看
JAVA反射机制是在运行时,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java的反射机制。
Java反射的作用?
假如有两个程序员,一个程序员在写程序的时需要使用第二个程序员所写的类,但第二个程序员并没完成他所写的类。那么第一个程序员的代码是不能通过编译的。此时,利用Java反射的机制,就可以让第一个程序员在没有得到第二个程序员所写的类的时候,来完成自身代码的编译。
Class类的使用
OOP的世界里,万事万物皆对象。类是谁的对象呢?——类是对象,类是java.lang.Class类的实例对象!There is a class named class.
实例:
View Code
应用:通过类的名称来生产一个对象 如:Integer in = (Integer) class.forName(className).newInstance();
Java反射的作用?
假如有两个程序员,一个程序员在写程序的时需要使用第二个程序员所写的类,但第二个程序员并没完成他所写的类。那么第一个程序员的代码是不能通过编译的。此时,利用Java反射的机制,就可以让第一个程序员在没有得到第二个程序员所写的类的时候,来完成自身代码的编译。
Class类的使用
OOP的世界里,万事万物皆对象。类是谁的对象呢?——类是对象,类是java.lang.Class类的实例对象!There is a class named class.
实例:
public static void main(String[] args) { // TODO Auto-generated method stub ArrayList l1 = new ArrayList(); ArrayList<String> l2 = new ArrayList<String>(); l1.add("hello"); l1.add(2); //wrong?是跟JDK版本有关系嘛??? Class c1 = l1.getClass(); Class c2 = l2.getClass(); System.out.println(c1 == c2); //true,说明编译之后集合的泛型是去泛型化得 //反射的操作都是编译之后的操作 try { Method m = c2.getMethod("add", Object.class); m.invoke(l1, "world"); System.out.println(l1.size()); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } }
View Code
应用:通过类的名称来生产一个对象 如:Integer in = (Integer) class.forName(className).newInstance();
相关文章推荐
- JavaWeb总结(九)—过滤器
- Spring注入bean报错:Error creating bean with name的网上找不到的解决方案
- java之正则表达式的使用1
- java 泛型实现Dao 操作的重用
- Java数组使用注意事项
- 《Spring设计思想》AOP实现原理(基于JDK和基于CGLIB)
- JAVA——制作java程序说明书、解决DOS下中文编码问题 GBK
- struts的两种校验方式
- 20145222黄亚奇《Java程序设计》实验一实验报告
- Java中equals和==的区别
- JAVA——普通代码块、构造代码块、静态代码块
- Java基础-环境变量设置及Java命令行使用 - 史上最全
- Spring的AOP模块
- Spring的ORM模块(结合Hibernate)
- Java中的Stack栈和Heap堆的区别
- java equals和hashcode、==、的关系,使用区别详细
- Java 自动装箱与拆箱(Autoboxing and unboxing)
- 初识Spring MVC框架
- Java 加解密技术系列之 DH
- JAVA IO(二)