网站首页 > java教程 正文
经常听一些老程序员说 反射很高深,多神秘等等。今天就来稍微讲一下,其实反射也不是那么高深莫测。主要是工作时间短的可能不会涉及到相关的开发,所以对这个了解比较少。举一个通俗的例子吧,反射的意思就是:我知道了一个人的名字,就知道这个人的身高、性别、体重、三围等等信息。这就是反射,通过名字获取这个类的全部属性和方法。
1.什么是反射
JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。
2.怎么用反射
1.获取字节码文件(.class文件),得到Class对象
三种方式:Class c=
1.Object.getClass()方法
2.Object.class
3.Class.forName(“含有包名的类名”);
Class
Constructor
Field
Method
2.分别得到Constructor(构造方法的类),Field(成员变量),Method(成员方法)的对象
Constructor
con=c.getDeclaredConstructor(class类型);
Field field
=c.getDeclaredField(“成员变量的名称”);
Method method
=c.getMethod(String name,参数class类型);
3.使用这些对象的方法获得构造方法,成员变量,成员方法。
Object o= con.newInstance(参数);
field.setAccessible(true);
field.set(o, 新参数);
m1.invoke(o,可变参数);
4.反射的好处
其实我们经常用到的就是做泛型类、接口的时候使用。下面举一个简单的例子,通过反射把数据库中的数据自动加载到指定的类的属性中。
说明一下,上述的方法的作用是返回数据库中集合List,只要最终查询的的结果字段和接收的类相匹配就可以把结果存储到List集合对象中。例如select name,password form user得到了name,password的一个list数据,User只要包含name,password这两个属性和相应的getset方法,通过上图方法就可以自动装配到List<User>中。
猜你喜欢
- 2024-10-12 java基础之反射,反射API的组成,反射机制的应用场景
- 2024-10-12 Java反射与反射优化(java反射与反射优化的区别)
- 2024-10-12 尚学堂讲有关Java反射的那些事(java反射如何通俗易懂理解)
- 2024-10-12 Java面试手册:反射(java面试反射机制)
- 2024-10-12 如何通过反射获得方法的真实参数名(以及扩展研究)
- 2024-10-12 Java中的反射使用(java 反射使用)
- 2024-10-12 Java面试技术,这31个反射问题你都会嘛?(有答案)
- 2024-10-12 Java反射机制详解(java中的反射机制)
- 2024-10-12 测试开发必须掌握的知识点:Java反射
- 2024-10-12 Java反射机制(Java反射机制主要提供了以下哪些功能)
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)