【发布时间】:2019-02-17 07:13:40
【问题描述】:
如果它定义了以下注解:
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
public @interface MyAnnot {
public String value();
}
然后用它定义如下接口:
@MyAnnot("somevalue")
public interface MyClass
{
}
如果我随后运行以下命令:
javac MyClass.java
javap MyClass.class
那么我的输出是:
从“MyClass.java”编译
公共接口 MyClass { }
所以在我看来,注释没有被保留?如果是这样,为什么会这样?
【问题讨论】:
-
是不是故意不编译
MyAnnot.java? -
您是否为
javap命令尝试了-v标志?
标签: java java-annotations