Reputation: 21
I have already initialized constant expressions for my string. What seems to be the problem here?
The error I am getting is "constant expression required".
Below is my code,
public class VatCalculator {
private static int ONBOARD_SALE =1;
private static int ONBOARD_SERVICE =2;
private static int PREORDER_SALE =3;
private static int PREORDER_SERVICE =4;
private static final Map<String, Integer> serviceMap = new HashMap<String, Integer>();
static {
serviceMap.put("onboardSale", ONBOARD_SALE);
serviceMap.put("onboardService", ONBOARD_SERVICE);
serviceMap.put("preorderSale", PREORDER_SALE);
serviceMap.put("preorderService", PREORDER_SERVICE);
}
public static double calculate(String serviceGroup) {
int type = serviceMap.get(serviceGroup);
switch(type) {
//error at below line
case ONBOARD_SALE:
//do something
default:break;
}
}
Upvotes: 0
Views: 2338
Reputation: 165
check brace
public class VatCalculator {
private static int ONBOARD_SALE =1;
private static int ONBOARD_SERVICE =2;
private static int PREORDER_SALE =3;
private static int PREORDER_SERVICE =4;
private static final Map<String, Integer> serviceMap = new HashMap<String, Integer>();
static {
serviceMap.put("onboardSale", ONBOARD_SALE);
serviceMap.put("onboardService", ONBOARD_SERVICE);
serviceMap.put("preorderSale", PREORDER_SALE);
serviceMap.put("preorderService", PREORDER_SERVICE);
}
public static double calculate(String serviceGroup) {
int type = serviceMap.get(serviceGroup);
switch(type) {
//error at below line
case ONBOARD_SALE:
//do something
default:break;
}
}
} //<-- add like this brace
Upvotes: 0