您的位置:首页 > 编程语言 > Java开发

Java —— Reflect反射机制

2016-04-16 19:45 471 查看
JAVA反射机制是在运行时,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java的反射机制。

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();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: