如何从其他类获取Java接口@Path值

时间:2019-02-16 17:21:17

标签: java interface annotations

我有以下类型的界面。是否可以从其他类中获取@Path(“ / bucket-definitions”)值“ / bucket-definitions”?

@Path("/bucket-definitions")
@Api(
    value = "Bucket definition",
    authorizations = {@Authorization("token")}
)
public interface BucketDefinitionResource {
    @GET
    @Path("/{operator-id}")
    @Produces({"application/json"})
    @ApiOperation(
        value = "Get all bucket definitions.",
        notes = "Returns all bucket definitions.",
        response = BucketDefinitionList.class
    )
    BucketDefinitionList get(@ApiParam(value = "Bucket definitions of the operator to be fetched.",required = true) @PathParam("operator-id") String var1, @ApiParam(value = "Page number",required = false) @DefaultValue("1") @QueryParam("page") Integer var2, @ApiParam("Items per page") @DefaultValue("20") @QueryParam("per_page") Integer var3);
}

1 个答案:

答案 0 :(得分:0)

我尝试了几种方法后发现了以下解决方案。我只想获取@Path(“ / bucket-definitions”)的值,即“ bucket-definitions”。它不是来自任何网站。因此,这完全是我获取@Path注释的值的方法。其他专家可以建议我更好的方法。希望此解决方案对其他人有帮助。

Annotation annotation = BucketDefinitionResource.class.getAnnotations()[0];
    if (annotation.toString().contains("Path")) {
        String SERVICE_NAME = annotation.toString().substring(annotation.toString().indexOf("/"), annotation.toString().indexOf(")"));
    }