• 榨汁机(Juicer)榨汁的案例
  • 分别有水果(Fruit)苹果(Apple)香蕉(Banana)桔子(Orange)榨汁(squeeze)

  • public class Demo_Reflect {
    
        /**
    * 榨汁机(Juicer)榨汁的案例
    * 分别有水果(Fruit)苹果(Apple)香蕉(Banana)桔子(Orange)榨汁(squeeze)
    * @throws Exception
    */
    public static void main(String[] args) throws Exception {
    /*Juicer j = new Juicer();
    //j.run(new Apple());
    j.run(new Orange());*/
    BufferedReader br = new BufferedReader(new FileReader("config.properties")); //创建输入流对象,关联配置文件
    Class<?> clazz = Class.forName(br.readLine()); //读取配置文件一行内容,获取该类的字节码对象
    Fruit f = (Fruit) clazz.newInstance(); //通过字节码对象创建实例对象
    Juicer j = new Juicer();
    j.run(f);
    } }
    interface Fruit {
    public void squeeze();
    } class Apple implements Fruit {
    public void squeeze() {
    System.out.println("榨出一杯苹果汁儿");
    }
    } class Orange implements Fruit {
    public void squeeze() {
    System.out.println("榨出一杯桔子汁儿");
    }
    } class Juicer {
    public void run(Fruit f) {
    f.squeeze();
    } }

最新文章

  1. Servlet、Filter、Listener、Interceptor
  2. 迭代器和for-of循环 顺便带一下Es5中的.map遍历
  3. MetaPhlAn 2:宏基因组进化分析
  4. bzoj1513: [POI2006]Tet-Tetris 3D
  5. 一年成为Emacs高手(像神一样使用编辑器)
  6. CentOS 6.6 nginx PHP 配置
  7. 简短总结一下C#里跨线程更新UI
  8. Struts2_搭建环境及HelloWorld
  9. php中文件引入require
  10. 【STL】算法 — partial_sort
  11. EasyUI Messager 消息框
  12. Webpack 2 视频教程 020 - Webpack 2 中的 HMR ( Hot Module Replacement )
  13. Pytorch系列教程
  14. centos7 安装mysql5.7
  15. Lua脚本性能优化指南
  16. Android.mk简介&lt;转&gt;
  17. SQL SERVER EXPRESS 连接字符串
  18. DataTable--数据生成datatable
  19. 怎么解决JSP中出现乱码的问题
  20. 判断tableViewCell是否在可视区

热门文章

  1. 【Day5】3.反爬策略之模拟登录
  2. (转载)关于FLASH寿命的读写方法
  3. 【问题】为啥WMWare Workstation里面虚拟机的网关默认是NAT网关
  4. wav音频的剪切
  5. Maven 发布项目到Jetty服务器———5
  6. train loss相关问题
  7. springboot的简单了解与使用
  8. git ls-files 列出被修改或者被删除的文件
  9. 第81题:搜索旋转排序数组II
  10. vue前端项目优化策略