假设代码是,
@Path("/app/{resource}") //Suppose resource comes as Apple or Mango.
@Produces(value=MediaType.APPLICATION_JSON)
public class AppResource {
@GET
public Response getResource(@PathParam("resource") String resource) {
// Here want to convert resource to Apple or Mango class so that I can create a List<Apple> or List<Mango>.
}
}
基本上我想要一个通用List作为List&lt; Apple&gt;或列表&lt;芒果&gt;取决于uri,{resource}中的任何内容。
答案 0 :(得分:0)
如果您希望代码具有明确的List<Apple>
和List<Mango>
列表,那么您需要编写如下代码:
@GET
public Response getResource(@PathParam("resource") String resource) {
List<?> list;
switch (resource) {
case "apples":
list = getApples();
break;
case "mangos":
list = getMangos();
break;
default:
return Response.status(Status.NOT_FOUND).build();
}
return Response.ok(list);
}
private List<Apple> getApples() {
List<Apple> appleList = new ArrayList<>();
// add apples
return appleList;
}
private List<Mango> getMangos() {
List<Mango> mangoList = new ArrayList<>();
// add mangos
return mangoList;
}
default
语句中的switch
子句可确保/app/sailboats
之类的请求失败,并显示正常的404
“找不到页面”错误。