什么是实现注释的有效用例?用例实现注释
当主要设计基于注释的配置系统时,我偶尔需要创建实现代码生成或编程配置注释的类。
另一种方法涉及将注释中包含的数据镜像到DTO中,这看起来像是开销。
下面是一个例子:
public enum IDType {
LOCAL,
URI,
RESOURCE;
}
@Documented
@Target({ METHOD, FIELD })
@Retention(RetentionPolicy.RUNTIME)
@Inherited
public @interface Id {
/**
* @return
*/
IDType value() default IDType.LOCAL;
}
与实施
public class IdImpl implements Id{
private final IDType idType;
public IdImpl(IDType idType){
this.idType = idType;
}
@Override
public IDType value() {
return idType;
}
@Override
public Class<? extends Annotation> annotationType() {
return Id.class;
}
}
我得到这个编译器警告,但似乎是许多使用情况的有效工具。
上述用于实施例中的警告是
注释类型ID不应当被用来作为IdImpl
编辑的一个超接口 :
我刚发现从Guice这个例子中:
bind(CreditCardProcessor.class)
.annotatedWith(Names.named("Checkout"))
.to(CheckoutCreditCardProcessor.class);
有没有人有一些信息,为什么这个限制存在或有其他一些用例?
你会得到什么警告? – djna 2010-07-27 08:50:44
@djina:是的,每一次你必须说一次就会有一分钱,你会变得富有。它永远不会令我惊叹。 – musiKk 2010-07-27 08:56:09
也许这只是我,但它似乎与这个问题密切相关:http:// stackoverflow。com/questions/1624084/why-is-not-possible-to-extend-in-java- – 2010-07-27 18:22:02