- package com.itheima;
- /**
-
- * @author
- package cn.itcast.heima;
- public class DemoClass {
- public void run()
- {
- System.out.println("welcome to heima!");
- }
- }
- (1) 写一个Properties格式的配置文件,配置类的完整名称。
- (2) 写一个程序,读取这个Properties配置文件,获得类的完整名称并加载这个类,用反射 的方式运行run方法。
- 分析:1.在包内写一个DemoClass类
- 2.在工程下写一个配置文件,Test.properties 内容为 className=com.itheima.DemoClass
- 3.创建Properties对象,读取流中的内容
- 4.获取读取的类的字节码对象,根据字节码对象创建DemoClass对象,调用run方法
- *
- */
- import java.io.*;
- import java.util.Properties;
- import com.itheima.DemoClass;
- public class Test7 {
- public static void main(String[] args) throws Exception {
- loadFile();
- }
- public static void loadFile() throws Exception {
- Properties prop = new Properties();//利用Properties类加载配置文件,它以键值对形式取出数据
- FileInputStream fis = new FileInputStream(new File("Test7.properties"));
- prop.load(fis);
- //System.out.println(prop);
- fis.close();
- String className = (String) prop.getProperty("className");//设置了key,通过配置文件的key取出类的完整名称
- //System.out.println(className);
- //DemoClass name =(DemoClass)Class.forName("com.itheima.DemoClass").newInstance();
- DemoClass name = (DemoClass)Class.forName(className).newInstance();
- name.run();
-
- }
- }
复制代码 编译无错误,运行的时候出现类找不到异常,这是什么情况啊
DemoClass类写在这个类中,就是题中的
配置文件是 className=com.itheima.DemoClass
|
|