我在自己的项目中使用JavaEE8。
JaxRs中使用接口作为参数的任何方法是什么?
例如,如果我有这样的界面:
public interface Thing {
// Without any method .
}
和这的两个实现:
public class Car implements Thing {
private String name ;
private String model ;
}
public class AirPlan implements Thing {
private String name ;
private String model ;
private long age ;
}
我想用这样的参数声明带有工厂的api:
@Path("/create")
@POST
@Consumes({MediaType.APPLICATION_JSON})
public Response createThing(Thing thing) {
// execute some operations ....
}
如果客户发送名称,型号,年龄作为参数,则此方法创建AirPlan对象;如果客户仅发送名称,型号,参数,则此方法创建Car对象。
更新
我有关于这个问题的更新:
把东西上课。
public class Thing {
private String type ;
}
并从此扩展其他类。
现在:
@Path("/create")
@POST
@Consumes({MediaType.APPLICATION_JSON})
public Response createThing(Thing thing) {
// execute some operations ....
}
如果type=="car"
,则创建Car;如果type=="airplan"
,则创建Airplan