1、通过java语言中的反射机制可以操作字节码文件。 2、反射机制相关的重要的类有哪些?java.lang.Class:代表整个字节码,代表一个类型,代表整个类。 java.lang.reflect.Method:代表字节码中的方法字节码。代表类中的方法。 java.lang.reflect.Constructor:代表字节码中的构造方法字节码。代表类中的构造方法 java.lang.reflect.Field:代表字节码中的属性字节码。代表类中的成员变量(静态变量+实例变量)。 3、通过反射创建对象有什么好处? java代码写一遍,再不改变java源代码的基础之上,可以做到不同对象的实例化。非常之灵活。(符合OCP开闭原则:对扩展开放,对修改关闭。) 下面我们通过反射来创建对象: (1)有一个配置文件叫classinfo.propertiesname=com.zd.bean.Student (2)学生实体类package com.zd.bean; public class Student { private int id; private String name; private String address; 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 getAddress() { return address; } public void setAddress(String address) { this.address = address; } } (3)反射创建对象package com.zd.ref; import java.io.FileInputStream; import java.util.Properties; public class Ref01 { public static void main(String[] args) throws Exception { FileInputStream inputStream = new FileInputStream("src/className.properties"); Properties properties = new Properties(); properties.load(inputStream); Class c = Class.forName(properties.getProperty("name")); Object obj = c.newInstance(); System.out.println(obj); } } 总结:通过反射创建对象,代码不需要改动,可以修改配置文件,配置文件修改之后,可以创建出不同的实例对象。