反射:在程序的运行过程中,能够探测类所拥有的属性和行为的一种能力,把这种机制成为反射.
反射的使用场景:
1>把字符串转换成类对象
2>做通用代码(框架)
Java反射相关操作如下:
a.获取成员方法Method
b.获取成员变量Field
c.获取构造函数Constructor
例如:
package reflectDemo;
public class Student
{
private String name;
private int age;
private String msg = "hello test";
public void tell()
{
System.out.println(msg);
}
public void fun(String name, int age)
{
System.out.println("我叫" + name + ",今年" + age + "岁");
}
}
package reflectDemo;
import java.lang.reflect.Method;
public class ReflectTest
{
public static void main(String[] args) throws Exception
{
// 获取类对象
Class c = Class.forName("reflectDemo.Student");
// 创建类对象的实例
Object object = c.newInstance();
Method method2 = c.getMethod("fun", String.class, int.class);
method2.invoke(object, "dog", 2);
Method method = c.getMethod("tell");
method.invoke(object);
}
}
结果:
我叫dog,今年2岁
hello test