春は奇妙な動作をしています...これは私のコントローラです:
@RequestMapping(value="", method=RequestMethod.GET)
public void search(SearchDTO dto) {
System.out.println(dto.testa.contains);
System.out.println(dto.testa.contains.getClass());
System.out.println(dto.testb.contains);
System.out.println(dto.testb.contains.getClass());
}
SearchDTO.java:
public class SearchDTO {
public UUIDListSearchDTO testa;
public UUIDListSearchDTO getTesta() { return testa; }
public void setTesta(UUIDListSearchDTO testa) { this.testa = testa; }
public ListSearchDTO<UUID> testb;
public ListSearchDTO<UUID> getTestb() { return testb; }
public void setTestb(ListSearchDTO<UUID> testb) { this.testb = testb; }
}
ListSearchDTO.java:
public class ListSearchDTO<C> {
public C contains;
public C getContains() { return contains; }
public void setContains(C contains) { this.contains = contains; }
}
UUIDListSearchDTO.java:
public class UUIDListSearchDTO extends ListSearchDTO<UUID> {
}
ここで、次の URL を呼び出します。
GET http://localhost:8080/myApp/myController?testa.contains=11111111-1111-1111-1111-111111111111&testb.contains=11111111-1111-1111-1111-111111111111
私が得る出力:
11111111-1111-1111-1111-111111111111
class java.util.UUID
11111111-1111-1111-1111-111111111111
java.lang.ClassCastException: java.lang.String cannot be cast to java.util.UUID
なぜこれが起こるのですか?
ところで: 私は Spring 4.0.0.M3 を使用しています。誰かが Spring 3 でテストできますか?
スタックトレース:
trace
アプリケーション全体のデバッグ レベルを に設定しました。
(例外は 72 行目で発生します: java.lang.ClassCastException: java.lang.String cannot be cast to java.util.UUID
)
リクエスト URL:http://localhost:8080/copilot/assets?foreignKeys.contains=11112222-3333-4444-5555-66667777