私はSpringのRestTemplate
を使ってREST Webサービスを呼び出しています。これらの呼び出しの1つは、特定のタイプのオブジェクトのリストを返すことです。 RestTemplate
メソッドでは、期待される戻り値の型を示すためにclass引数を指定する必要があります。ジェネリック型の情報が利用できない場合、コンパイラの警告を避けるにはどうすればよいですか?
// restTemplate is type org.springframework.web.client.RestTemplate
URI restServiceURI = new URI("http://example.com/foo")
restTemplate.getForObject(restServiceURI, List<Foo>.class);
明らかに、これはコンパイルされません。そのような型引数を指定すると、静的な.class
プロパティを取得することはできません。型引数を削除すると、コードがコンパイルされますが、それはrawtypes
コンパイラ警告を生成します。
私の質問は簡単です。私はコンパイラの警告を抑制することに固執しているのですか、これをコード化するためのよりクリーンな方法がありますか?
Jacksonはクラスパス上にあり、Spring 3.xはそれらのストリームをマーシャル/アンマーシャリングするために自動的に使用します。私はそれを私の利点に利用したいと考えていましたが、私はこれをより低いレベルで行う必要があるように見えます。私はSpringが他のテンプレートクラスと同様にCollectionのリターンを処理する簡単な方法を提供していないことに驚いています。 –
この方法は、洗練されています。 RestTemplate.getForObject()を使用するのではなく、RestTemplate.execute()を使用して、私自身のResponseExtractorを提供しています。これは概念の証明を通じて私を得るが、私は、サーバーからの応答の種類を決定するより巧妙な方法があると思います。今はJSONを想定していますが、XMLをサポートする必要があります。方向をありがとう! –