JAVA访问代码中的注释

JAVA访问代码中的注释,java,javadoc,dry,Java,Javadoc,Dry,这可能很奇怪。我有一些文本作为方法的注释,我可以这样链接: public class A { /** * {@link B#method()}. */ void method() { System.out.println(B.comment); } } public class B { public static final String comment = "This is some comment"; /**

这可能很奇怪。我有一些文本作为方法的注释,我可以这样链接:

public class A {
    /**
     * {@link B#method()}.
     */
    void method() {
        System.out.println(B.comment);
    }
}


public class B {
    public static final String comment = "This is some comment";
    /**
     * Comment: {@value #comment}
     */
    void method() {
    }
}
/**{@link com.mypackage.YetAnotherClass#myMethod(String)}*/

但我想在代码中将该文本用作字符串的一部分。似乎我必须选择:

  • 将注释中的文本复制并粘贴到代码中
  • 创建带有静态字段的类,并在其他类的注释和代码中使用该字段

  • 第一个选项违反了
    DRY
    ,第二个选项通过创建新类使代码复杂化。是否有其他方法在代码中使用注释文本?

    我不确定我是否理解您正在做的事情,但您可以在注释和代码中重复使用一些文本字符串,如下所示:

    public class A {
        /**
         * {@link B#method()}.
         */
        void method() {
            System.out.println(B.comment);
        }
    }
    
    
    public class B {
        public static final String comment = "This is some comment";
        /**
         * Comment: {@value #comment}
         */
        void method() {
        }
    }
    

    (我不会说重复使用短语或单词违反了DRY…

    选择第二个,并将字符串放在静态字段中。在javadoc中使用
    @value
    将其值包含在文档中。为什么要将其包含在注释中?您试图实现什么?已编译类中不包含注释。完全您需要一个工具从源代码(或以前生成的javadocs)中提取注释,或者在编译之前转换源代码,以便将注释嵌入到编译之后确实存在的内容中。一般来说,编译后不应该“需要”注释——更好地解释实际用例可能会得到更好(更集中)的回复。。