反射机制
java.lang.reflect.*
反射机制可以操作字节码文件
反射机制可以操作代码片段(class文件)
相关的类:
java.lang.Class 代表整个字节码,一个类型。就是整个类
java.lang.reflect.Method 代表方法字节码,就是类中的方法
java.lang.reflect.Constructor 代表构造方法字节码,就是类中的构造方法
java.lang.reflect.Field 代表属性字节码,就是类中的成员变量和静态变量
获得类(class)的三种方式
Class.forName(String s)
字符串s需要是完整的类名(必须带有包名,例:java.lang.System)
String s;
Class x=s.getClass();
(Object中的方法getClass())
类型.class
例如:Class z=String.class
任何类型都有的属性
获得文件的绝对路径
Thread.currentThread().getContextClassLoader().getResource("").getPath();
以上代码可以获得文件的绝对路径(注意:文件必须在类路径下,就是src下)
Thread.currentThread() 表示当前线程对象
getContextClassLoader() 获取当前线程的类加载器对象
getResource("word.txt") 当前类的加载器对象默认从类的根路径下载资源