【发布时间】:2017-06-04 01:47:05
【问题描述】:
我最近正在处理很多继承的接口和注释,我对@Inherited 注释有疑问。我知道默认情况下,子类和方法不会继承 java 注释。使用@Inherited注解我们可以使注解被子类继承。
但它也适用于方法构造函数中的注释值?
例如:
@Inherited
@StringDef({ID_REAR, ID_FRONT})
@Retention(RetentionPolicy.SOURCE)
public @interface CustomId {
}
public interface Setting {
void update(@CustomId String myCustomId);
}
public class CustomSetting implements Setting{
@Override public void update(String myCustomId) {
}
}
在这种情况下,CustomSetting 中的方法update 会为其构造函数(String myCustomId) 实现注解@CustomId 吗?
【问题讨论】:
-
没有。阅读
@Inherited注释的API docs,其中说:“请注意,如果注释类型用于注释类以外的任何内容,则此元注释类型无效。” -
明白,那么方法值就没有办法继承了?
标签: java android inheritance interface annotations