黑马程序员技术交流社区

标题: 代码和老师一样怎么我的就出错了 [打印本页]

作者: 马上都有    时间: 2014-5-20 18:16
标题: 代码和老师一样怎么我的就出错了
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.HashSet;
import java.util.Properties;

public class ReflectTest2 {

        public static void main(String[] args) throws Exception {
                /*读取文件并放入字节缓冲流,配置文件一定要用完整的路径,但完整的路径不是用编码,而是运算出来的。
                getRealpath();得到程序安装目录。*/
                InputStream ips = new FileInputStream("config.properties");
/*                getClassLoader()是获取该类的加载器,getResourceAsStream()是获取普通文件,方式是的在classpath
                文件目录下逐一查找要加载的文件,这种方式只读不能改,注意最前面不要有"/"。
                InputStream ips = ReflectTest2.class.getClassLoader().getResourceAsStream("cn/itcast/day1/config.properties");
//                相对于包下面的文件
                InputStream ips = ReflectTest2.class.getResourceAsStream("config.properties");
*/                /*它基于HashSetMap扩展了,可以把内存里面的键值顿写入到文件,也可以在初始化的时候
                把自己的键值顿文件加载进来*/
                Properties props = new Properties();
                props.load(ips);
                //这是关闭调用的系统资源,而不是Java资源被关闭,这样不会倒置Java会垃圾回收,而系统资源还在
                ips.close();
                //获取className的值
                String className = props.getProperty("className");
                //创建className对应的类的字节码的对象
                Collection collections = (Collection)Class.forName(className);

                //Collection collections = new HashSet();
                ReflectPoint pt1 = new ReflectPoint(3, 3);
                ReflectPoint pt2 = new ReflectPoint(5, 5);
                ReflectPoint pt3 = new ReflectPoint(3, 3);
                collections.add(pt1);
                collections.add(pt2);
                collections.add(pt3);
                collections.add(pt1);

                System.out.println(collections.size());
        }
}



作者: 陌路迟行    时间: 2014-5-21 13:11
错误信息是什么?
作者: 马上都有    时间: 2014-5-21 13:15
陌路迟行 发表于 2014-5-21 13:11
错误信息是什么?

Collection collections = (Collection)Class.forName(className);

MyEclipse提示:不能从 Class<capture#1-of ?> 强制类型转换为
作者: 艮昕辶    时间: 2014-5-21 13:19
Collection collections = (Collection)Class.forName(className);
这句
Collection collections = (Collection)Class.forName(className).newInstance();
作者: 马上都有    时间: 2014-5-21 14:09
艮昕辶 发表于 2014-5-21 13:19
Collection collections = (Collection)Class.forName(className);
这句
Collection collections = (Coll ...

谢谢,原来没有创建对象,呵呵




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2