豆沙包

          …… …… 所學 所寫 所想 所做 所悟…… ……

          通過Java Reflection 獲取指定static變量的值

          比如:有一個SQLUtil類,是一個Hibernate項目中的用來存儲一系列sql的類,皆為常量。在其它的類中可以根據變量的名稱來索引相應的值,問題在于名稱在另外的類中亦為變量,直接索引是沒有辦法的,但可以透過Java Reflection非常方便的實現。給出的是示意性代碼,相應的Exception處理顯然不夠 elegant
          /*
           * Created on 2005-3-3
           *
           * TODO To change the template for this generated file go to
           * Window - Preferences - Java - Code Style - Code Templates
           
          */

          package reflection;

          /**
           * @author ruby
           *
           * TODO To change the template for this generated type comment go to
           * Window - Preferences - Java - Code Style - Code Templates
           
          */

          public class SQLUtil {
              
          public static final String SELECT_SQL="from Ruby";

          }


          /*
           * Created on 2005-3-3
           *
           * TODO To change the template for this generated file go to
           * Window - Preferences - Java - Code Style - Code Templates
           
          */

          package reflection;

          import java.lang.reflect.Field;

          /**
           * @author ruby
           * 
           * TODO To change the template for this generated type comment go to Window -
           * Preferences - Java - Code Style - Code Templates
           
          */

          public class Manager {

              
          public static String getValue(String sqlName) throws SecurityException,
                      NoSuchFieldException, IllegalArgumentException,
                      IllegalAccessException 
          {

                  Field f 
          = SQLUtil.class.getField(sqlName);

                  
          return f.get(null).toString();
              }


              
          public static void main(String[] args) throws SecurityException,
                      NoSuchFieldException, IllegalArgumentException,
                      IllegalAccessException 
          {
                  System.
          out.println(getValue("SELECT_SQL"));
              }

          }

          posted on 2005-03-04 09:28 carob 閱讀(1032) 評論(0)  編輯  收藏 所屬分類: Reflection

          主站蜘蛛池模板: 天长市| 吉木萨尔县| 临沭县| 邳州市| 栾城县| 巴里| 丽江市| 九江县| 湟中县| 阿城市| 萍乡市| 德清县| 新泰市| 双牌县| 台前县| 桃源县| 新宁县| 驻马店市| 湄潭县| 临武县| 平和县| 乌拉特后旗| 苍山县| 葫芦岛市| 湖州市| 轮台县| 德格县| 微山县| 清水河县| 德江县| 承德市| 比如县| 扬州市| 白玉县| 赤城县| 安吉县| 齐河县| 龙州县| 商洛市| 门源| 商都县|