2013-05-14 59 views
-1

當我做get請求與接口RequestSpecification,我想要返回一個參數List<T>,我必須在方法.as()做什麼???這是突出的大膽! 也許我必須指定列表的一個實現?但我需要具體參數List如何在接口RequestSpecification中返回參數化列表<T>?

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

您只能擁有'.as(Class klazz)';一個結果 – 2013-05-14 15:34:04

+0

你在說什麼RequestSpecification?因爲我找不到與你想要做的事情類似的東西。 'get()'返回一個'Response'並且沒有像as()這樣的方法' – 2013-05-14 16:10:08

+0

請看這裏[link](http://rest-assured.googlecode.com/svn/tags/1.4.5/apidocs/ index.html?com/jayway/restassured/specification/package-use.html),當你做GET並且想要返回對象並且將他投給需要的clazz! – Anton 2013-05-15 07:01:25

回答

0

由於type erasure,你不能有List<String>.class,因爲這實際上是一樣List<Integer>.classList<Dog>.class,並且List.class在運行時。

你可以你的名單到List<T>,但這是非常危險的(因此,你會得到一個警告)。 (請參閱Jan's answer。)

2

歡迎使用類型擦除。所有列表在運行時都是相同的。除非你有參數類型爲一類對象的類型信息,所有你能做的就是:

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

注意的是,如果這使在那些DesiredType類型不是對象,你會訪問時遇到問題稍後的列表。

+0

這沒有幫助,有解組異常!當JAXB將XML解析爲Java對象時?可能還有點別的? – Anton 2013-05-15 10:59:36

相關問題