- 反射机制能够操作字节码,使得程序更加灵活;
- 反射机制的相关类的包:java.lang.reflect.*;
- 反射机制相关的类:
- java.lang.Class;
- java.lang.reflect.Method;
- java.lang.reflect.Constructor;
- java.lang.reflect.Field;
- 在java中获取Class的方法:
- Class.forName("完整的类名");
- 对象.getClass();
- int.class();
- String.class();
- 获取了Class之后,可以调用无参数构造方法来实例化对象
//c代表的就是Date类型 Class c = Class.forName("java.util.Date"); //实例化一个Date对象 Object obj = c.newInstance();
- 如果只想让一个类的“静态代码块”执行:
Class.forName("该类的类名"); //这样子类加载的时候,静态代码块就会执行!
- 获取绝对路径相关方法:
//获取绝对路径 String path = Thread.currentThread().getContextClassLoader().getResource("文件名").getPath(); //读取这个文件 FileReader reader = new FileReader(path); Properties pro = new Properties(); pro.load(reader); reader.close(); String value = pro.getProperty(key); System.out.println(value);
package org.example.reflect; import java.io.InputStream; import java.util.Properties; public class IoProperties { public static void main(String[] args) throws Exception{ //以流的方式获取绝对路径 InputStream reader = Thread.currentThread().getContextClassLoader().getResourceAsStream("className.properties"); //以下不变 Properties properties = new Properties(); properties.load(reader); reader.close(); //通过key获取value String className = properties.getProperty("className"); System.out.println(className); } }
反射机制浅显地总结
最新推荐文章于 2024-09-15 09:47:04 发布