A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 敗唫①輩ふ 中级黑马   /  2013-11-6 20:36  /  831 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 敗唫①輩ふ 于 2013-11-6 20:38 编辑

已知一个类,定义如下:
   package cn.itcast.heima;
      public class DemoClass {
      public void run()
      {
         System.out.println("welcome to heima!");
      }   
     }
(1) 写一个Properties格式的配置文件,配置类的完整名称。
(2) 写一个程序,读取这个Properties配置文件,获得类的完整名称并加载这个类,用反射 的方式运行run方法。


我敲完代码后发现有地方不对,请哪位大神指教,感激不尽{:soso_e149:}


public class Test8 {
        /**
         * 获取输入流,用于读取配置文件信息
         * @param filePath 配置文件路径
         * @return 返回指定配置文件的输入流
         */
        public static InputStream getInputStream(String filePath) {
                InputStream ips = null;
                //通过getResourceAsStream方法获取输入流
                ips = Test8.class.getResourceAsStream(filePath);
                return ips;
        }
       
        /**
         * 反射调用方法
         * @param filePath 配置文件路径
         * @throws Exception 为了演示功能没有对异常进行针对性处理
         */
        public static void reflectInovokeMethod(String filePath) throws Exception{
                Properties properties = new Properties();
                InputStream ips = getInputStream(filePath);
                properties.load(ips);
               
                String className = properties.getProperty("className");
                Class clazz = Class.forName(className);
                Object obj = clazz.newInstance();
                Method methodRun = clazz.getMethod("run", null);
                methodRun.invoke(obj, null);
               
        }
       
        /**
         * 主函数进行功能测试
         */
        public static void main(String[] args) throws Exception{
                //配置文件路径
                String filePath = "resources\\config.properties";
               
                //通过反射调用run方法
                reflectInovokeMethod(filePath);
        }

}

评分

参与人数 1技术分 +1 收起 理由
To + 1 赞一个!

查看全部评分

1 个回复

倒序浏览
public static InputStream getInputStream(String filePath) {
   ............................
   ips = Test8.class.getResourceAsStream(filePath);
}
getResourceAsStream 代码你没给,目测是这行出问题了
Test8.class。。。 这个语法调用的是 Class 类的方法吧

评分

参与人数 2技术分 +1 黑马币 +8 收起 理由
敗唫①輩ふ + 8 很给力!
To + 1 很给力!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马