-1

当我get用接口请求RequestSpecification并且我想返回一个参数化List<T>时,我必须在方法中做什么.as()???是大胆的亮点!也许我必须指定列表的实现之一?但我需要特定的参数化List

List<> response = given().parameter(x,x)
                   .expect()
                   .statuscode(200)
                   .when()
                   .get("some kind of GET")
                   **.as(List<>.class)**
4

2 回答 2

2

欢迎输入擦除。所有列表在运行时都是相同的。除非您将参数类型的类型信息作为类对象,否则您只能:

@SuppressWarnings("unchecked")
List<DesiredType> response = (List<DesiredType>)given().parameter(x,x)
               .expect()
               .statuscode(200)
               .when()
               .get("some kind of GET")
               .as(List.class);

请注意,如果这放入了不是 type 的对象DesiredType,您稍后在访问该列表时会遇到问题。

于 2013-05-14T15:32:16.047 回答
0

由于类型擦除,您不能拥有List<String>.class,因为这实际上与List<Integer>.class,List<Dog>.classList.class在运行时相同。

您可以您的列表转换为 a List<T>,但这非常危险(因此您会收到警告)。(见简的回答。)

于 2013-05-14T15:30:05.577 回答