首页 > 技术文章 > 反射机制知识点总结

a-n-yan 2021-05-25 21:48 原文

package com.day06;

/**
* @author anyan
* @date 2021/5/25-21:03
*/
/*
反射机制知识点总结:
作用:通过反射机制可以操作字节码文件,使得程序更加灵活
获取Class之后可以调用无参数构造方法来实例化对象
newInstance()底层调用的是改类型的无参构造方法。所以注意改类必须要有无参构造方法
关于如何回去文件的绝对路径问题:
通用方式,支持文件移植,以类字符串的方式返回
Thread.currentThread().getContextClassLoader().getResource("文件路径").getPath();
其中“文件路径”存在于src路径下。默认根路径为src。
通用方式,直接以流的形式返回
Thread.currentThread().getContextClassLoader().getResourceAsStream("文件路径");

java中获取Class的三种方式
/*
与反射机制相关的类:
java.lang.Class;
java.lang.reflect.Method;
java.lang.reflect.Constructor;
java.lang.reflect.Field;
*/
/*
IO+propertoes 如何快速绑定属性资源文件?
ResourceBundle bundle=ResourceBundle.getBundle("文件路径");
String s=bundle.getString(key);
要求:1.文件必须在类目录下
2.必须是以.properties为后缀的文件
*/
/*
三种类加载器:
启动类加载器
扩展类加载器
应用类加载器
*/
public class Test01 {
public static void main(String[] args) throws ClassNotFoundException {
//第一种
Class c1=Class.forName("java.lang.Object");//类加载,静态代码块的程序会执行
System.out.println(c1);
//第二种
Class c2=c1.getClass();//对象.getClass()
System.out.println(c2);
//第三种.(基本数据类型)
Class c3=Integer.class;
Class c4=int.class;
Class c5=String.class;
System.out.println(c3);
System.out.println(c4);
System.out.println(c5);
}
}
class MyClass1{
public MyClass1() {
}
}

推荐阅读