2017-05-22 6 views
1

@RequestMapping否定 『に拳法上の一般的な制約「sは春ブーツ1.5/Javaで@RestController 8.@RequestMapping&バウンドジェネリック偶然に

ためのあいまいな要求のマッピングがする方法があります生み出します』 Iterableさんのものは含まれていませんか? (つまり、配列のある投稿は1つのメソッドに行き、1つのアイテムの投稿は2番目のメソッドに移動します)。

@RequestMapping(method = RequestMethod.POST, value="/foo") 
public T save(T item){ 
    ... 
} 
@RequestMapping(method = RequestMethod.POST, value="/foo") 
public Iterable<T> save(Iterable<T> items){ 
    ... 
} 
+0

は、たとえば、あなたがこのような何かを実装することができます。 – cralfaro

答えて

2

あなたのマッピングは明らかにあいまいです。

保存されたタイプごとに異なるエンドポイントを指定するか、@RequestMapping注釈の要素を使用してマッピングを狭くする必要があります。 headersを使用して

@RequestMapping(method = RequestMethod.POST, value="/foo", params="item") 
public T save(T item){ 
    ... 
} 
@RequestMapping(method = RequestMethod.POST, value="/foo", params="items") 
public Iterable<T> save(Iterable<T> items){ 
    ... 
} 

または、::あなたがエンドポイントを定義することはできませんパラメータを持つ

@RequestMapping(method = RequestMethod.POST, value="/foo", headers="Input-Type=item") 
public T save(T item){ 
    ... 
} 
@RequestMapping(method = RequestMethod.POST, value="/foo", headers="Input-Type=items") 
public Iterable<T> save(Iterable<T> items){ 
    ... 
} 
+0

すごく、何らかの理由で私は引数の 'Type'がメソッドをオーバーロードするのに十分だと考えていました。 – eztinkerdreams

関連する問題