豆沙包

          …… …… 所學(xué) 所寫 所想 所做 所悟…… ……

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

          比如:有一個SQLUtil類,是一個Hibernate項目中的用來存儲一系列sql的類,皆為常量。在其它的類中可以根據(jù)變量的名稱來索引相應(yīng)的值,問題在于名稱在另外的類中亦為變量,直接索引是沒有辦法的,但可以透過Java Reflection非常方便的實現(xiàn)。給出的是示意性代碼,相應(yīng)的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 閱讀(1037) 評論(0)  編輯  收藏 所屬分類: Reflection

          主站蜘蛛池模板: 尤溪县| 天津市| 龙陵县| 清镇市| 甘肃省| 天长市| 台北县| 凤山县| 四子王旗| 巴青县| 高陵县| 太谷县| 许昌县| 溧水县| 仁寿县| 祥云县| 河源市| 阿坝| 承德县| 夏河县| 门头沟区| 延长县| 上杭县| 镇坪县| 胶南市| 庄浪县| 手机| 河池市| 页游| 盘山县| 攀枝花市| 文水县| 平南县| 铁岭县| 昭平县| 道孚县| 曲水县| 巩留县| 朝阳市| 昌图县| 和林格尔县|