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行代碼,現實中可能見不到這么傻的例子,但是這確實有助於理解反射。

 
        

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM