java反射简单实例

前端技术 2023/09/04 Java

本文实例讲述了java反射简单实现方法。分享给大家供大家参考。具体实现方法如下:

复制代码 代码如下:
package reflect;

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

转载请注明出处。

本站部分内容来源于网络,如侵犯到您的权益,请 联系我

我的博客

人生若只如初见,何事秋风悲画扇。