一个java基础的小题目

下面是题目,想请教思路和代码,只能按java基础的知识来做--------------------------------------------------------... 下面是题目,想请教思路和代码,只能按java基础的知识来做
--------------------------------------------------------------------------------------------
已知一个类,定义如下:
package cn.itcast.heima;
public class DemoClass {
public void run()
{
System.out.println("welcome to heima!");
}
}
(1) 写一个Properties格式的配置文件,配置类的完整名称。
(2) 写一个程序,读取这个Properties配置文件,获得类的完整名称并加载这个类,用反射 的方式运行run方法。
展开
 我来答
咎慧语05X
2013-07-29 · TA获得超过861个赞
知道小有建树答主
回答量:636
采纳率:25%
帮助的人:197万
展开全部
//Properties文件名:InputPt.Properties
//内容 自定义吧
//思路就这样了

//Demo 类

package com.ylbbidu.inputpt.test;

public class Demo {

/**
* @param args
*/
public void run(){
System.out.println("hello!Demo!");
}
}

//InputPt类
package com.ylbbidu.inputpt.test;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.lang.reflect.Field;
import java.lang.reflect.Modifier;
import java.util.Properties;

public class InputPt {

public static void main(String[] args) throws IOException, InstantiationException, IllegalAccessException, ClassNotFoundException {
loadProperties();
}

public static void loadProperties() throws IOException, InstantiationException, IllegalAccessException, ClassNotFoundException {
try {
Properties pt=new Properties();
InputStream fis=new FileInputStream(new File("InputPt.Properties"));//利用Properties类加载配置文件,可以以键值对形式读取数据
pt.load(fis);//
System.out.println(pt);//先测试一下,本例中如果正常会输出"{}"
fis.close();
//*****接着利用反射操作了
/* Class<InputPt> c=InputPt.class;
Field[] fields=c.getDeclaredFields();
for(Field field:fields)
{
if (Modifier.isPrivate(field.getModifiers())) {
System.out.println("a"+field.getName());
}
}*/
//
String pathName=(String) pt.get("com.ylbbidu.inputpt.test.Demo");////设置了key,通过配置文件的key取出类的完整名称
System.out.println(pathName);//测试 输出路径
Demo demo=(Demo)Class.forName(pathName).newInstance();
demo.run();
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
}
miraclelord
2013-07-29 · TA获得超过272个赞
知道答主
回答量:228
采纳率:0%
帮助的人:160万
展开全部
import java.io.InputStream;
import java.util.Properties;

import com.lord.jdbc.dao.UserDao;

public class DaoFactory {
private UserDao userDao = null;
private static DaoFactory instance = null;

private DaoFactory() {
try {
//读取配置文件,获得实现类
Properties properties = new Properties();
InputStream inStream = DaoFactory.class.getClassLoader().getResourceAsStream("daoconfig.properties");
properties.load(inStream);
String userDaoClass = properties.getProperty("class");
userDao = (UserDao) Class.forName(userDaoClass).newInstance();
} catch (Exception e) {
e.printStackTrace();
throw new ExceptionInInitializerError(e);
}
}
}

daoconfig.properties的内容如下:

class=com.jdbc.dao.impl.UserDaoJdbcImpl


自己改下

更多追问追答
追问
com.lord.jdbc.dao.UserDao;UserDao的是什么意思呢?怎么来的
追答
是一个接口,com.jdbc.dao.impl.UserDaoJdbcImpl这个是它的实现类
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式