java spring中枚举类的bean id是什么?

时间:2012-01-31 10:14:29

标签: java spring

这是我的方法,我将一个字符串转换为一个case语句的枚举...

   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

}

这个类的bean id是什么? 我正在尝试属性类型,但它面临的错误,我需要一个建设者,因为我从来没有使用它? 枚举类是否有任何特定的bean id类型?

1 个答案:

答案 0 :(得分: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>