反射可以做些什么?

1.可以创建对象
2.可以获取类的属性和方法
3.可以调用类的属性和方法

配置文件的思想
反射多用于框架开发【struts,spring,mybits,hibernate。。。】

代码

package lesson15;

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;

import com.huaizhi.domain.Orange;

public class Demo {

public static void main(String[] args) throws IOException, ClassNotFoundException, InstantiationException, IllegalAccessException {
    // TODO Auto-generated method stub
    //1.以前创建对象的方法
    /*Apple apple = new Apple();
    Orange orange = new Orange();
    apple.squeeze();
    orange.squeeze();*/
    
    //获取类的字节码对象【Class.forName()读取配置文件】
    // 读取数据
    BufferedReader reader = new BufferedReader(new FileReader("config.properties"));
    String className = reader.readLine();
    System.out.println(className);
    reader.close();
    
    Class clz = Class.forName(className);
    //2.通过反射来创建对象
    Object obj = clz.newInstance();
    Orange orange = (Orange) obj;
    orange.squeeze();
    
}

}

你可能感兴趣的:(反射可以做些什么?)