zoukankan      html  css  js  c++  java
  • java反射的运用场景

    1、反射的好处是:可以在运行时确认对象以及方法。

    2、下面举个简单的例子来说下反射的运用场景:

      假如一款游戏有一个配置文件,配置文件里有个renderType设置了游戏启动时调用哪个RenderHandler来渲染游戏,

      (RenderHandler:一个接口,有一个render方法,HighRenderHandler、LowRenderHandler、MiddleRenderHandler等一共10个实现类)

      那么游戏启动时必须获得一个RenderHandler来渲染游戏,现在有两种方式,一种是使用switch判断

     1 //首先获得配置文件里的renderType
     2 switch(renderType){
     3      case "low":renderHandler=new LowRenderHandler();
     4      case "high":renderHandler=new HighRenderHandler();
     5      case "middle":renderHandler=new MiddleRenderHandler();
     6      case "a":renderHandler=new ARenderHandler();
     7      case "b":renderHandler=new BRenderHandler();
     8      case "c":renderHandler=new CRenderHandler();
     9      case "d":renderHandler=new DRenderHandler();
    10      case "e":renderHandler=new ERenderHandler();
    11      case "f":renderHandler=new FRenderHandler();
    12      case "g":renderHandler=new GRenderHandler();
    13      default:renderHandler=new LowRenderHandler();
    14  }
    15  renderHandler.render();

        

    另一种是使用反射:

    1 //首先从配置文件里获得renderType
    2 RendeHandler renderHandler=(RendeHandler)Class.forName(rederType).newInstance(); 
    3 renderHandler.render();

    3、switch用了14行代码,而反射只使用了2行代码,现实中可能见不到这么傻的例子,但是这确实有助于理解反射。

    
    
    
  • 相关阅读:
    开机自启动程序 注册表
    windows系统调用 线程创建
    windows系统调用 进程终止
    windows系统调用 进程快照
    线性表基本维护[ACM]
    获取操作系统版本号
    获得进程句柄
    <五>JDBC_利用反射及JDBC元数据编写通用的查询方法
    <四>JDBC_PreparedStatement的使用
    <三>JDBC_面向对象思想的体现
  • 原文地址:https://www.cnblogs.com/2333/p/5852969.html
Copyright © 2011-2022 走看看