2012-01-31 91 views
0

這裏是我的方法,其中IM convertng一個字符串枚舉的case語句......什麼是java spring中的枚舉類的bean id?

public int AnalyseRow(String UserName, String SymbolName, Date TransDate, double OpenPrice, double HighPrice, double LowPriceee, double ClosePrice, int Volume, String Splits) 
     { 
      System.out.println("analyse row detected ........................... X"); 

      String SLPoint = ""; 
      String SLType = ""; 
      String TLDPoint = ""; 
      String TLUPoint = ""; 
      double STPoint; 
      double LTPoint; 
      double MAPoint; 

      boolean bTLUIsHorizontal = false; 
      double dPointDef; 
      double dHorizontalPoints; 
      boolean TLDHorizontalIsSet = false; 
      boolean TLUHorizontalIsSet = false; 

      double dEntryPrice = 0; 
      double dStopLossPrice = 0; 

      List objOpenLTOrders = null; 

      int intOpenLTOrdersCount = 0 ; 

      List objLiveLTOrders = null; 

      int intLiveLTOrdersCount=0; 

      List objOpenSTOrders=null; 

      int intOpenSTOrdersCount=0; 

      List objLiveSTOrders=null; 
      int intLiveSTOrdersCount=0; 
      List objContractSettings=null; 


      double dVolume = 0; 
      double dGrossProfit=0; 
      double dNetProfit=0; 
      double dBrokerageCharge=0; 
      double dSpreadCharge=0; 

         for(int i=0; i<count;i++) 
         { 
    //      'MsgBox(objSettingsServiceDataRow.SettingName & " - " & objSettingsServiceDataRow.SettingValue) 
          String caseOf = (settingsBusinessService.readRow(1).getSETTINGNAME()); 
    //      Select Case objSettingsServiceDataRow.SettingName 
          EnumRule enum1 = EnumRule.valueOf("caseOf"); 


          switch(enum1) 
          { 
           case caseOf: 
           { 
            if((settingsBusinessService.GetAllSettings(UserName, settings)).size() != 0) 
            { 
             //if (TransDate > tradingBusinessService.GetMaxStockDataTransDate(UserName, SymbolName).AddDays(Double.valueOf((objSettingsServiceDataRow.SettingValue)))) 
             { 
              SaveLog(UserName, "WARNING DateTime Difference : Difference exceeded specified amount on trans " + SymbolName + " " + TransDate, Now(), 2); 
              return 1; 
              //break; 
             } 


            } 
           } 


} 

我的枚舉類:

package com.ib.client.mts.backend.BusinessService; 

public enum EnumRule { 

    caseOf, EUR 

} 

會是怎樣的豆ID爲這個類? 即時嘗試屬性類型,但它面臨的錯誤,我需要一個constructer在哪裏,因爲我從來沒有使用它? 是否有任何speacific bean id類型的枚舉類?

+1

爲什麼你需要一個枚舉一個Spring bean? – yair 2012-01-31 10:27:27

+0

一個方法與Spring依賴注入有什麼關係? – duffymo 2012-01-31 10:35:04

+0

沒有豆我得到錯誤! – Aritra 2012-01-31 10:36:29

回答

0

編輯:據How assign bean's property an Enum value in Spring config file?,你可以簡單地用枚舉值:

<bean name="yourBean" class="your.pakage"> 
    <property name="type" value="EUR" /> 
</bean> 

您可以從使用靜態valueOf方法作爲工廠方法一個Java枚舉一個Spring bean。

使用您的EnumRule:

<bean id="yourBean" class="com.ib.client.mts.backend.BusinessService.EnumRule" factory-method="valueOf"> 
    <constructor-arg> 
     <value>EUR</value> 
    </constructor-arg> 
</bean>