本文实例讲述了java反射简单实现方法。分享给大家供大家参考。具体实现方法如下:
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Properties;
interface fruit{
public abstract void eat() ;
}
class Apple implements fruit{
public void eat() {
System.out.println(\"eat Apple\");
}
}
class orange implements fruit{
public void eat() {
System.out.println(\"eat orange\");
}
}
class init{
public static Properties getPro() throws FileNotFoundException, IOException{
Properties pro = new Properties() ;
File f = new File(\"fruit.properties\") ;
if(f.exists()){
System.out.println(\"有配置文件!\");
//从配置文件中读取键值对
pro.load(new FileInputStream(f)) ;
}else{
System.out.println(\"没有配置文件!\");
pro.setProperty(\"apple\", \"reflect.Apple\") ;
pro.setProperty(\"orange\", \"reflect.orange\") ;
pro.store(new FileOutputStream(f), \"FRUIT CLASS\");
}
return pro ;
}
}
class Factory{
public static fruit getInstance(String className){
fruit f = null ;
try {
//通过反射得到fruit的实例对象
f = (fruit)Class.forName(className).newInstance();
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
return f ;
}
}
public class Hello {
public static void main(String[] args) {
try {
Properties pro = init.getPro() ;
fruit f = Factory.getInstance(pro.getProperty(\"apple\")) ;
if(f != null){
f.eat() ;
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
本文地址:https://www.stayed.cn/item/11525
转载请注明出处。
本站部分内容来源于网络,如侵犯到您的权益,请 联系我