十九,反射
// 断言模式 : 10 + 10 = 30
// Class 就是内存中的字节码文件
// 1.Object : getClass
Class<?> c1 = new Test01().getClass();
// 2.内置的静态属性 .class
Class<?> c2 = Test01.class ;
Class<Void> voidClass = void.class;
Class<Integer> integerClass = int.class;
// 3.动态加载 : Class : forName(String className)
Class<?> c3 = Class.forName("com.msr.lesson02.Test01");
System.out.println(c1 == c2);
System.out.println(c1 == c3);
// 静态创建对象就是 使用 new 关键字创建 : 要求类必须存在.
// 动态创建对象
// Word word = new Word();
// word.start();
// Excel excel = new Excel() ;
// excel.start();
try {
Class<?> aClass = Class.forName("com.msr.lesson04.Excel");
WPS wps = (WPS) aClass.getConstructor().newInstance();
wps.start();
}
// 创建文件的内存对象
Properties properties = new Properties();
// 借助资源流加载文件
ClassLoader classLoader = Test02.class.getClassLoader();// 获取类加载器
InputStream inputStream = classLoader.getResourceAsStream("wps.properties");// 默认路径 是 项目的 src 目录下
// 将硬盘文件和内存对象关联起来
try {
properties.load(inputStream);
// 读取硬盘文件内容
String value = properties.getProperty("className");
String[] split = value.split(";");
for (String className : split) {
Class<?> clazz = Class.forName(className);
WPS wps = (WPS) clazz.getConstructor().newInstance();
wps.start();
}
浙公网安备 33010602011771号