• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • 讓Java的反射更得簡單

    發表于:2014-05-30來源:不詳作者:不詳點擊數: 標簽:軟件測試
    反射對Java開發人員來說是最強大的功能之一了。標準的Java API真的很難使用,尤其是搜索和查詢某些特殊的方法的時候。 比如說,我最近在參與的一個項目,要取出一個類的所有

      反射對Java開發人員來說是最強大的功能之一了。標準的Java API真的很難使用,尤其是搜索和查詢某些特殊的方法的時候。

      比如說,我最近在參與的一個項目,要取出一個類的所有返回string,不帶參數的,且以to開頭的public方法,寫出來的代碼大概像下面這樣:

      ArrayList results = new ArrayList();

      for (Method m : String.class.getDeclaredMethods()) {

      if (Modifier.isPublic(m.getModifiers()) &&

      m.getReturnType().equals(String.class) &&

      m.getParameterCount() == 0 &&

      m.getName().startsWith("to")) {

      results.add(m);

      }

      }

      因此你可以想像一下,如果有比這還復雜的情況,這段代碼最后會成什么樣。我找了一遍后發現Reflections這個庫可以讓這樣工作變得想當簡單。同樣的查詢用它來寫的話會是這樣的:

      Set results = getMethods(String.class,

      withModifier(Modifier.PUBLIC),

      withReturnType(String.class),

      withParametersCount(0),

      withPrefix("to"));

      有個這個庫還能進行一些更為復雜的查詢。想了解關于它的更多信息的話,它的官方文檔是個不錯的選擇。希望將來你考慮在Java中進行一些反射相關的操作的話會考慮使用一下這個庫。

      下下面有些相關的資料鏈接:

      https://github.com/ronmamo/reflections

      http://docs.oracle.com/javase/tutorial/reflect/

    原文轉自:http://it.deepinmind.com/java/2014/05/25/reflection-java-made-easy.html

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>