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

Java反射简介

2015-09-12 17:49 295 查看
反射

1、Java反射的概念

自己理解:可以通过类来获得对象及其属性和方法,先知道整体,然后根据整体是什么类型,在创建具体实现的对象,从而进行其他操作。

反射含义:可以获取正在运行的Java对象。

2、Java功能:

可以判断运行对象属于哪一个类

可以判断运行对象拥有的成员和函数

反射甚至可以调用private修饰的方法

3、实现Java反射的类

Class:它表示正在运行的Java应用程序中的类和接口

Field:提供有关类或接口的属性信息,以及对它的动态访问权限

Constructor:提供关于类的单个构造方法的信息以及对它的访问权限

Method:提供关于类或接口中某个方法信息

4、反射的优缺点

反射的优点是可以实现动态创建对象

反射的缺点是对性能有影响

代码示例:

public class Mydemo {

public static void main(String[] args){
// 获取整个类
Class<?> c = null;
try {
c = Class.forName("java.lang.Integer");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
// 获取所有的属性
Field[] fs = c.getDeclaredFields();

// 定义可变长的字符串,用来存储属性
StringBuffer sb = new StringBuffer();
// 通过追加的方法,将每个属性拼接到此字符串中
// 最外边的public定义
sb.append(Modifier.toString(c.getModifiers()) + " class " + c.getSimpleName() +"{\n");
// 里边的每一个属性
for(Field field:fs){
// 空格
sb.append("\t");
// 获得属性的修饰符,例如public,static等等
sb.append(Modifier.toString(field.getModifiers())+" ");
// 属性的类型的名字
sb.append(field.getType().getSimpleName() + " ");
// 属性的名字+回车
sb.append(field.getName()+";\n");
}

sb.append("}");

System.out.println(sb);

}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: