So I\'ve got a code:
@Path(\"/foo\")
public class Hello {
@GET
@Produces(\"text/html\")
public String getHtml(@Context Request request, @Context HttpServlet
To get value of the @Path
parameter:
String path = Hello.class.getAnnotation(Path.class).value();
Similarly, Once you have hold of Method
getHtml
Method m = Hello.class.getMethod("getHtml", ..);
String mime = m.getAnnotation(Produces.class).value;
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.