首页 > 解决方案 > JaxRs 使用接口作为参数

问题描述

我在自己的项目中使用 JavaEE 8。
有什么方法可以在 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 ....
}       

create Car iftype=="car"或 create Airplan iftype=="airplan"

标签: jakarta-eejerseyjax-rs

解决方案


推荐阅读