java反射简单实例

 更新时间:2015年02月03日 11:53:37   作者:Benjamin_whx  
这篇文章主要介绍了java反射机制,以一个简单实例形式分析了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();
  }
 }
}

结果为:

有配置文件!
eat Apple

希望本文所述对大家的java程序设计有所帮助。

相关文章

  • MySQL MyBatis 默认插入当前时间方式

    MySQL MyBatis 默认插入当前时间方式

    这篇文章主要介绍了MySQL MyBatis 默认插入当前时间方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-10-10
  • Java实体类中Set按照对象的某个字段对set排序

    Java实体类中Set按照对象的某个字段对set排序

    这篇文章主要介绍了Java实体类中Set按照对象的某个字段对set排序,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-06-06
  • spring aop之@AfterReturning不生效问题及解决

    spring aop之@AfterReturning不生效问题及解决

    这篇文章主要介绍了spring aop之@AfterReturning不生效问题及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-05-05
  • Springboot之如何统计代码执行耗时时间

    Springboot之如何统计代码执行耗时时间

    这篇文章主要介绍了Springboot之如何统计代码执行耗时时间问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-03
  • SpringBoot启动security后如何关闭弹出的/login页面

    SpringBoot启动security后如何关闭弹出的/login页面

    这篇文章主要介绍了SpringBoot启动security后如何关闭弹出的login页面问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-12-12
  • java实现新浪微博Oauth接口发送图片和文字的方法

    java实现新浪微博Oauth接口发送图片和文字的方法

    这篇文章主要介绍了java实现新浪微博Oauth接口发送图片和文字的方法,涉及java调用新浪微博Oauth接口的使用技巧,具有一定参考接借鉴价值,需要的朋友可以参考下
    2015-07-07
  • 如何通过Kaptcha在Web页面生成验证码

    如何通过Kaptcha在Web页面生成验证码

    这篇文章主要介绍了如何通过Kaptcha在Web页面生成验证码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-10-10
  • SpringBoot中整合Shiro实现权限管理的示例代码

    SpringBoot中整合Shiro实现权限管理的示例代码

    这篇文章主要介绍了SpringBoot中整合Shiro实现权限管理的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • Java swing框架实现的贪吃蛇游戏完整示例

    Java swing框架实现的贪吃蛇游戏完整示例

    这篇文章主要介绍了Java swing框架实现的贪吃蛇游戏,结合完整实例形式分析了java使用swing框架结合awt图形绘制实现贪吃蛇游戏的具体步骤与相关实现技巧,需要的朋友可以参考下
    2017-12-12
  • 高并发下如何避免重复数据产生技巧

    高并发下如何避免重复数据产生技巧

    这篇文章主要为大家介绍了高并发下如何避免重复数据的产生技巧详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-07-07

最新评论