Get value of a parameter of an annotation in Java

前端 未结 2 1381
梦谈多话
梦谈多话 2020-12-06 09:19

So I\'ve got a code:

@Path(\"/foo\")
public class Hello {

@GET
@Produces(\"text/html\")
public String getHtml(@Context Request request, @Context HttpServlet         


        
2条回答
  •  北海茫月
    2020-12-06 09:49

    The annotation is based on interface logic. You need to call the valid member of it to retrieve the value.

    Definition

    public @interface Produces {
     String type();
    }
    

    Read example

    for (Method m: SomeClass.class.getMethods() {
       Produces produce = m.getAnnotation(Produces.class);
       if (produce != null)
           System.out.println(produce.type());
    }
    

    Yes. You must use reflection to access to method definition. You can use Class#MgetMethods() to get the definition of method

    For object you call obj.getClass() to get the class definition.

提交回复
热议问题