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

© ︶ㄣ紫藤ㄜ︵ 中级黑马   /  2013-7-12 18:13  /  1331 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 万琪 于 2013-7-12 19:35 编辑

package com.itheima;
import java.io.*;
import java.util.*;
import java.lang.reflect.*;
public class Test7 {
/**
  * 7、 已知一个类,定义如下:
   package cn.itcast.heima;
      public class DemoClass {
      public void run()
      {
         System.out.println("welcome to heima!");
      }   
     }
(1) 写一个Properties格式的配置文件,配置类的完整名称。
(2) 写一个程序,读取这个Properties配置文件,获得类的完整名称并加载这个类,用反射 的方式运行run方法。
  */
public static void main(String[] args) throws Exception {
  // TODO Auto-generated method stub
  loadFile();
}
  public static void loadFile() throws Exception {
   
   InputStream in = Test7.class.getClassLoader().getResourceAsStream("prop.properties");
   Properties prop = new Properties();//利用Properties类加载配置文件,它以键值对形式取出数据   
      prop.load(in);      
      in.close();
      String className=prop.getProperty("class"); //设置了key,通过配置文件的key取出类的完整名称   
      Class c=Class.forName(className);
      Object o = c.newInstance();
      Method m = c.getMethod("run");
      m.invoke(o);
        
      }
}
class DemoClass{
     
public void run(){
  System.out.println("welcome to heima!");
  
}
}

//Test7.properties
class=DemoClass;


11.png (6.58 KB, 下载次数: 0)

11.png

评分

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

查看全部评分

4 个回复

倒序浏览
prop.properties检查你这个文件的路径或者名称有没有写错
回复 使用道具 举报
神之梦 发表于 2013-7-12 18:24
prop.properties检查你这个文件的路径或者名称有没有写错

您好,您方便加一下我的qq么?878280390谢谢,我的还是报错,都检查了。
回复 使用道具 举报
当初我做这题时也遇到过这情况,你是把prop.properties放在了com.itheima包中了吧?这样的话直接用Class类的方法InputStream in = Test7.class.getResourceAsStream("prop.properties");应该就可以了。
Class.getResourceAsStream(String path) : path 不以’/‘开头时默认是从此类所在的包下取资源,以’/‘开头则是从ClassPath根下获取。  
Class.getClassLoader.getResourceAsStream(String path) 默认则是从ClassPath根下获取

评分

参与人数 1技术分 +1 收起 理由
万琪 + 1

查看全部评分

回复 使用道具 举报
杨政 发表于 2013-7-12 18:53
当初我做这题时也遇到过这情况,你是把prop.properties放在了com.itheima包中了吧?这样的话直接用Class类 ...

方便加一些我的qq么?878280390谢谢
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马