概述
一:反射机制的作用主要是:
1:可以将.class文件转为.java文件,实现反编译
2:可以通过类的名字得到这个JAVA对象中所有的属性和方法。
3:用的最多的就是spring框架了。因为我们在配置文件中配置好类的应射关系后,就可以通过反射机制自动找它的属性和方法了。框架再复杂也是使用的这种基本原理,只是它在上面又做了很多封装。
主要用到以下几个类:
java.lang.Class
java.lang.reflect.Constructor
java.lang.reflect.Field
java.lang.reflect.Method
java.lang.Modifier
这几个类的详细使用方法可以参看JDK的文档,上面都有详细介绍,这也是我们学习时最好一个文档。
二:为了测试看效果。我们先创建一个实体的类
package com.common;
public class User {
private int id;
private String name;
private String sex;
private int age;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
三:反射机制创建一个类的对象
package com.common;
public class ReflectTest {
public static void main(String[] args) {
try {
Class classUser = Class.forName("com.common.User");
User user = (User)classUser.newInstance();
} catch (Exception e) {
e.printStackTrace();
}
}
}
四:获取一个对象里面所有的方法,一共有三种方式得到类
package com.common;
import java.lang.reflect.Method;
public class ReflectTest {
public static void main(String[] args) {
try {
/*
* 方法1
*/
Class user = Class.forName("com.common.User");
/*
* 方法2
* Class user = User.class;
*/
/*
* 方法三
User u = new User();
Class user = u.getClass();
*/
Method[] method = user.getMethods();
for(int i=0;i<method.length;i++){
System.out.print(method[i].toString());
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
五:获取一个类里面所有的属性和指定的一个属性
package com.common;
import java.lang.reflect.Field;
public class ReflectTest {
public static void main(String[] args) {
try {
//得到类的class
Class classUser = Class.forName("com.common.User");
//取得所有的属性
Field[] fields = classUser.getDeclaredFields();
for(Field field : fields){
System.out.println(field.getName());
//field对象还有很多属性可以取到,这个可以参看JDK,这里就不全部列出了
}
//取得一个特定的属性
Field field = classUser.getDeclaredField("id");
field.getName();
} catch (Exception e) {
e.printStackTrace();
}
}
}
更多的取值可以参看JDK帮助文档中的java.lang.reflect包下面的类,我们在使用spring框架的时候,在配置文件中配置了类名为什么就能找到它所有的属性和方法,就是通过反射机制做到的,后面我们会讲spring框架的搭建和配置。慢慢来,先了解简单的原理再深入研究是一个不错的选择。
最后
以上就是深情指甲油为你收集整理的JAVA反射机制的简单实例和说明的全部内容,希望文章能够帮你解决JAVA反射机制的简单实例和说明所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复