这是我的方法,我将一个字符串转换为一个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类型?
答案 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>