反射概述什么是反射?① 反射的概念是由Smith在1982年首次提出的,主要指程序可以访问、检测和修改它本身状态或行为的一种能力。② JAVA反射机制是在运行状态中,对应任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个 ...
反射概述
什么是反射?
① 反射的概念是由Smith在1982年首次提出的,主要指程序可以访问、检测和修改它本身状态或行为的一种能力。
② JAVA反射机制是在运行状态中,对应任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法;这种状态获取的信息以及动态调用对象的方法的功能称为Java语言的反射机制。
③ 简单的说,反射机制指的是程序在运行时能够获取自身的信息。在java中,只要给定类的名字,那么就可以通过反射机制来获得类的所有信息。包括其访问修饰符、父类、实现的接口、属性和方法的所有信息,并可在运行时创建对象、修改属性(包括私有的)、调用方法(包括私有的)。
反射机制
① 为什么要用反射机制?直接创建对象不就可以了吗,这就涉及到了动态和静态的概念?
a) 静态编译:在编译时确定类型,绑定对象,即通过。
Student stu=new Student(“zhangsan”,20);
b) 动态编译:运行时确定类型,绑定对象。动态编译最大限度发挥了java的灵活性,体现了多态的应用,用以降低类之间的耦合性。
Class.forName(“com.mysql.jdbc.Driver.class”).newlnstance();
c) 反射机制的优点就是可以实现动态创建对象和编译,体现出很大的灵活性,特别是J2EE的开发中。
d) 它的缺点是对性能有影响,使用反射基本上是一种解释操作,这类操作总是慢于直接执行的相同操作。
Java反射机制主要提供了以下功能
① 在运行时判断任意一个对象所属的类
② 在运行时构造任意一个类的对象
③ 在运行时判断任意一个类的所具有的成员变量和方法
④ 在运行时调用任意一个对象的方法
Class对象
① Class对象是Reflection故事起源。要想操作类中的属性和方法,都必须从获取Class对象开始。
a) 类是程序的一部分,每个类都有一个Class对象。换言之,每当编写并编译一个新类,就会产生与之对应的一个Class对象。
b) Class类没有公共构造方法。Class对象是在加载类时由Java虚拟机以及通过调用类加载器中的方法自动构造的,因此不能显式地声明一个Class对象。
② 获取Class对象的方法有多种
获取方式 | 说明 | 示例 |
object.getClass() | 获取指定示例的 Class | String str=”abc”; Class c1=str.getClass(); |
class.getSuperclass() | 获取当前Class 的继承类的 Class | List list=new ArrayList(); Class listClass=list.getClass(); Class superClass= listClass.getSuperClass(); |
.class语法 | .class直接获取 | Class listClass=ArrayList.class; |
Class.forName(类名); | 用Class的静态方法,传入类的全称即可 | Class c1=Class. forName(“java.lang.String”); |
Primitive.TYPE | 基本数据类型的包装类获取Class的方式 | Class longClass=Long.TYPE; Class integerClass=Integer.TYPE; Class voidClass=Void.TYPE; |
示例:
创建一个雇员类
1 class Employee { 2 private String name; 3 private int age; 4 5 public String getName() { 6 return name; 7 } 8 9 public void setName(String name) {10 this.name = name;11 }12 13 public int getAge() {14 return age;15 }16 17 public void setAge(int age) {18 this.age = age;19 }20 21 public Employee(String name, int age) {22 super();23 this.name = name;24 this.age = age;25 }26 27 }
海外公司注册、海外银行开户、跨境平台代入驻、VAT、EPR等知识和在线办理:https://www.xlkjsw.com
原标题:反射——Java反射机制
关键词:JAVA
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:
admin#shaoqun.com
(#换成@)。