一个java基础的小题目
下面是题目,想请教思路和代码,只能按java基础的知识来做--------------------------------------------------------...
下面是题目,想请教思路和代码,只能按java基础的知识来做
--------------------------------------------------------------------------------------------
已知一个类,定义如下:
package cn.itcast.heima;
public class DemoClass {
public void run()
{
System.out.println("welcome to heima!");
}
}
(1) 写一个Properties格式的配置文件,配置类的完整名称。
(2) 写一个程序,读取这个Properties配置文件,获得类的完整名称并加载这个类,用反射 的方式运行run方法。 展开
--------------------------------------------------------------------------------------------
已知一个类,定义如下:
package cn.itcast.heima;
public class DemoClass {
public void run()
{
System.out.println("welcome to heima!");
}
}
(1) 写一个Properties格式的配置文件,配置类的完整名称。
(2) 写一个程序,读取这个Properties配置文件,获得类的完整名称并加载这个类,用反射 的方式运行run方法。 展开
2个回答
展开全部
//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();
}
}
}
//内容 自定义吧
//思路就这样了
//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();
}
}
}
展开全部
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这个是它的实现类
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询