Title: Spring Rest Template 2.x Support · Issue #1253 · androidannotations/androidannotations · GitHub
Open Graph Title: Spring Rest Template 2.x Support · Issue #1253 · androidannotations/androidannotations
X Title: Spring Rest Template 2.x Support · Issue #1253 · androidannotations/androidannotations
Description: Using dependency compile 'org.springframework.android:spring-android-rest-template:2.0.0.M1' Calls to restTemplate.exchange(...) in 2.x will create an ambiguous method call when the response class is null. Here are the two conflicting me...
Open Graph Description: Using dependency compile 'org.springframework.android:spring-android-rest-template:2.0.0.M1' Calls to restTemplate.exchange(...) in 2.x will create an ambiguous method call when the response class ...
X Description: Using dependency compile 'org.springframework.android:spring-android-rest-template:2.0.0.M1' Calls to restTemplate.exchange(...) in 2.x will create an ambiguous method call when the respons...
Opengraph URL: https://github.com/androidannotations/androidannotations/issues/1253
X: @github
Domain: github.com
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"Spring Rest Template 2.x Support","articleBody":"Using dependency\n\n``` groovy\ncompile 'org.springframework.android:spring-android-rest-template:2.0.0.M1'\n```\n\nCalls to `restTemplate.exchange(...)` in 2.x will create an ambiguous method call when the response class is `null`. Here are the two conflicting method signatures (the second one was added in 2.x).\n\n``` java\n\u003cT\u003e ResponseEntity\u003cT\u003e exchange(String url, HttpMethod method, HttpEntity\u003c?\u003e requestEntity,\n Class\u003cT\u003e responseType, Object... uriVariables) throws RestClientException\n\n\u003cT\u003e ResponseEntity\u003cT\u003e exchange(String url,HttpMethod method, HttpEntity\u003c?\u003e requestEntity,\n ParameterizedTypeReference\u003cT\u003e responseType, Object... uriVariables) throws RestClientException\n```\n\nMy proposal would be to use one of the following:\n\n1) Instead of using `exchange(...)` for each method call, use the appropriate method depending on the known `HttpMethod`.\n\n``` java\n//For DELETE\nrestTemplate.delete(rootUrl.concat(\"\"), urlVariables);\n//For GET\nrestTemplate.getForEntity(rootUrl.concat(\"\"), MyClass.class, urlVariables);\n//For POST\nrestTemplate.postForEntity(rootUrl.concat(\"\"), requestEntity, MyClass.class, urlVariables);\n//For PUT\nrestTemplate.putForEntity(rootUrl.concat(\"\"), requestEntity, MyClass.class, urlVariables);\n//For Options\nrestTemplate.optionsForAllow(rootUrl.concat(\"\"), urlVariables);\n//Etc\n```\n\n2) When the response class is null, cast it like below (this simply avoid the ambiguous arguments):\n\n``` java\n @Override\n public void deleteResourceById(String id) {\n {\n HashMap\u003cString, Object\u003e urlVariables = new HashMap\u003cString, Object\u003e();\n urlVariables.put(\"id\", id);\n //Note the cast on 'null'\n restTemplate.exchange(rootUrl.concat(\"/resources/{id}\"), HttpMethod.DELETE, null, (Class\u003cObject\u003e)null, urlVariables);\n }\n }\n```\n\nOption 2 is obviously the simplest. I'd be happy to do the pull request, just looking for some input on what people feel is the best approach.\n\nVince\n","author":{"url":"https://github.com/vincentjames501","@type":"Person","name":"vincentjames501"},"datePublished":"2014-11-19T19:51:01.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":3},"url":"https://github.com/1253/androidannotations/issues/1253"}
| route-pattern | /_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format) |
| route-controller | voltron_issues_fragments |
| route-action | issue_layout |
| fetch-nonce | v2:9206aa75-e303-9d2d-8015-b2fe2b2afb5b |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | B538:E1E8C:26C89F:352BEA:6A61A295 |
| html-safe-nonce | 09a7313bbe5943114033ceca2232fa62d018e7ed9cd32b158ac55c3d7f62d7e5 |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJCNTM4OkUxRThDOjI2Qzg5RjozNTJCRUE6NkE2MUEyOTUiLCJ2aXNpdG9yX2lkIjoiNDE2MDk0MDk2MjExNzQyNzg2MSIsInJlZ2lvbl9lZGdlIjoiaWFkIiwicmVnaW9uX3JlbmRlciI6ImlhZCJ9 |
| visitor-hmac | 59a916a1db931c71d22d9997bc148a0037b07f29ae9e48321b74ba4a6b67b680 |
| hovercard-subject-tag | issue:49444550 |
| github-keyboard-shortcuts | repository,issues,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | / |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/androidannotations/androidannotations/1253/issue_layout |
| twitter:image | https://opengraph.githubassets.com/cea682517526c5d9ab69c81421a52b9cc1409860d6b2ba1a15dc2fa7216d759b/androidannotations/androidannotations/issues/1253 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/cea682517526c5d9ab69c81421a52b9cc1409860d6b2ba1a15dc2fa7216d759b/androidannotations/androidannotations/issues/1253 |
| og:image:alt | Using dependency compile 'org.springframework.android:spring-android-rest-template:2.0.0.M1' Calls to restTemplate.exchange(...) in 2.x will create an ambiguous method call when the response class ... |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | vincentjames501 |
| hostname | github.com |
| expected-hostname | github.com |
| None | 6f4633bcf01c1ad14b73fd07dd39ac31d61f3d3c2578ee08ec1792b7b351eeb9 |
| turbo-cache-control | no-preview |
| go-import | github.com/androidannotations/androidannotations git https://github.com/androidannotations/androidannotations.git |
| octolytics-dimension-user_id | 1315313 |
| octolytics-dimension-user_login | androidannotations |
| octolytics-dimension-repository_id | 3116751 |
| octolytics-dimension-repository_nwo | androidannotations/androidannotations |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 3116751 |
| octolytics-dimension-repository_network_root_nwo | androidannotations/androidannotations |
| turbo-body-classes | logged-out env-production page-responsive |
| disable-turbo | false |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | ac296ae7f21856f1f92adbad22f870b6fbb4b907 |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width