工厂模式加载类的问题?
帮忙看一下。代码有警告。我才学这个,不知道如何改。标红色的部分。
import java.io.File;
import java.io.FileInputStream;
import
java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
public class DaoFactory {
private static TeacherDao teacherDao=null;
private static StudentDao studentDao=null;
private static ClassRelationDao classRelationDao=null;
//工厂使用单例模式。
private static DaoFactory instance=new DaoFactory();
//将构造方法变成私有的,不让别人来构造。
private DaoFactory()
{
try {
//完成初始化的工作
//从Properties文件中把信息读取出来。
Properties prop=new Properties();
InputStream inStream=DaoFactory.class.getClassLoader()
.getResourceAsStream("daocofing.properties");
prop.load(inStream);
String teacherDaoClass=prop.getProperty("teacherDaoClass");
//将teacherDaoClass这个类装载到虚拟机里
Class classObjectTeacher=Class.forName(teacherDaoClass);
//获得实例。
teacherDao=(TeacherDao)classObjectTeacher.newInstance();
String studentDaoClass=prop.getProperty("studentDaoClass");
//将studentDaoClass这个类装载到虚拟机里
Class classObjectStudent=Class.forName(studentDaoClass);
//获得实例。
studentDao=(StudentDao)classObjectStudent.newInstance();
String classRelationDaoClass=prop.getProperty("classRelationDaoClass");
//将classRelationDaoClass这个类装载到虚拟机里
Class classObjectClassRelation=Class.forName(classRelationDaoClass);
//获得实例。
classRelationDao=(ClassRelationDao)classObjectClassRelation.newInstance();
} catch (Exception e) {
// 将
异常抛出去,这是一个静态初始化错误。
throw new
ExceptionInInitializerError(e);
}
}
public static DaoFactory getInstance()
{
return instance;
}
//工厂里面提供一个方法,用来生产UserDao这个产品。
public TeacherDao getUserDao()
{
return teacherDao;
}
}
------解决方案--------------------一、忽略警告改为
@SuppressWarnings("rawtypes")
Class classObjectTeacher=Class.forName(teacherDaoClass);
二、改为
Class<?> classObjectTeacher=Class.forName(teacherDaoClass);
------解决方案--------------------是LZ那三个Dao没定义啊
------解决方案--------------------+1可以这样,但其实,警告是没有关系的。
------解决方案--------------------是否有默认构造函数?DAO的