【问题标题】:Exception in thread "main" java.lang.ClassCastException: www.logisense.com.pogos.wizardNewProduct.ProductWorkingDates cannot be cast to java.util.List线程“主”java.lang.ClassCastException 中的异常:www.logisense.com.pogos.wizardNewProduct.ProductWorkingDates 无法转换为 java.util.List
【发布时间】:2021-05-31 09:36:02
【问题描述】:

我正在尝试将 Object 转换为 JSON,我有以下 POGO 类:

import lombok.Data;
import java.util.List;

@Data
public class CreateNewProductRequest {

    private List<ProductIncludedTags> productIncludedTags;

    private List<ProductWorkingDates> productWorkingDates;

    private double longitude;

    private List<ProductTags> productTags;

}

import Lombok.Data;
import java.util.List;

@Data
public class ProductWorkingDates {

    private String fromDate;
    private String toDate;
    private String name;
    private Boolean strictHours;
    private List<TimeSlots> timeSlots;
    private String deletedAt;
    private Integer maxUsedTicketsQuantity;
    private  Integer errorCode;
}


import lombok.Data;

@Data
public class TimeSlots {

    private String startTime;
    private String endTime;
    private String duration;
    private String quantity;
    private String usedQuantity;
    private boolean active;
    private String deletedAt;
}

我通过黄瓜传递数据,我有以下场景

场景:Provider 在 ProductWorkingDates 中输入数据

Given product Working Dates is set with following fields
  | fromDate        | toDate          | name                | strictHours |
  | Thu May 27 2021 | Sat Dec 31 2022 | 1234567sdfgh#$#%^%& | false       |

我有我的 step Defenition 类,我试图通过 List&lt;Map&lt;String, String&gt;&gt; productWorkingDates;

    @Given("^product Working Dates is set with following fields$")
    public void productWorkingDatesIsSetWithFollowingFields(List<Map<String,String>> productWorkingDates) {
        ProductWorkingDates productWorkingDates1 = new ProductWorkingDates();
        productWorkingDates1.setFromDate(productWorkingDates.get(0).get("fromDate"));
        productWorkingDates1.setToDate(productWorkingDates.get(0).get("toDate"));
        productWorkingDates1.setName(productWorkingDates.get(0).get("name"));
        productWorkingDates1.setStrictHours(Boolean.parseBoolean(productWorkingDates.get(0).get("strictHours")));
       


//====> this is where I'm having an issue, pls help 

productRequest.setProductWorkingDates((List<ProductWorkingDates>) productWorkingDates1);
  

  }

【问题讨论】:

    标签: java cucumber pojo rest-assured


    【解决方案1】:

    据我所知,productWorkingDates1 不是列表,而是列表的元素,类型为 ProductWorkingDates : ProductWorkingDates productWorkingDates1 = new ProductWorkingDates();

    当尝试从 ProductWorkingDates 转换为 List 时,您将面临您所描述的异常: (List&lt;ProductWorkingDates&gt;) productWorkingDates1

    你需要的是这样的东西:

    List<ProductWorkingDates> listProductWorkingDates = new ArrayList<>();
    listProductWorkingDates.add(productWorkingDates1);
    productRequest.setProductWorkingDates(listProductWorkingDates);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多