How to get a JavaDoc of a method at run time?

前端 未结 5 1977
无人及你
无人及你 2020-11-29 11:51

Its easy to get a method Name of a Class at run time
BUT
How i can get a JavaDoc of a method at run time ?

As the f

5条回答
  •  臣服心动
    2020-11-29 12:35

    The only way to get it at runtime is to use custom annotations.

    Create a custom annotation class:

    @Retention(RUNTIME)
    @Target(value = METHOD)
    public @interface ServiceDef {
      /**
       * This provides description when generating docs.
       */
      public String desc() default "";
      /**
       * This provides params when generating docs.
       */
      public String[] params();
    }
    

    Use it on a method of a class, e.g.:

    @ServiceDef(desc = "This is an utility class",
                params = {"name - the name","format - the format"})     
    public void read(String name, String format)
    

    Inspect the annotations via reflection:

    for (Method method : Sample.class.getMethods()) {
      if (Modifier.isPublic(method.getModifiers())) {
        ServiceDef serviceDef = method.getAnnotation(ServiceDef.class);
        if (serviceDef != null) {
          String[] params = serviceDef.params();
          String descOfMethod = serviceDef.desc();
        }
      }
    }
    

提交回复
热议问题