spring 需要在POST请求中将枚举值与另一个类字段相加

oug3syen  于 2023-02-15  发布在  Spring
关注(0)|答案(1)|浏览(112)

我有一个双精度类型值的成分ENUM:

@Getter
@AllArgsConstructor
public enum Ingredients
    LETUCE(0.40),
    BACON(2.00),
    BEEF(3.00),
    EGG(0.80),
    CHEESE(1.50);

我有一个带字段的Burger类:

Long id;
       String name;
       
       Double price;
       List<Ingredients> aditionalIngredients;

Burger类有一个List<Ingredients> aditionalIngredients字段用于其他配料,我需要在JSON POST请求中将其他配料值与默认Burger价格相加,例如:

{
  "name" : "Burger1",
  "price" : 5.00,
  "aditionalIngredients: ["LETUCE", "EGG"] //sum these 2 values to the burger default price 
}

EXPECTED RETURN

{
  "name" : "Burger1",
  "aditionalIngredients: ["LETUCE", "EGG"]
  "price" : 6.20         //0.40 + 0.80 + 5.00(burger price)
}

我试着这么做:

if(!burger.getAditionalIngredient().isEmpty()){
         for( Ingredients a : Ingredients.values()){
         burger.setPrice(burger.getPrice() +  a.getValue());
   }
}

但是返回了所有枚举值的总和,而不仅仅是["LETUCE","EGG]。

7nbnzgx9

7nbnzgx91#

这是因为你在重复所有的成分

for (Ingredients a : Ingredients.values()) {

试试看

for (Ingredients a : burger.getIngredients()) {

顺便说一句,考虑将枚举重命名为Ingredient而不是Ingredients,因为单个示例表示Ingredient,而不是全部。

相关问题