什麼是實現註釋的有效用例?用例實現註釋
當主要設計基於註釋的配置系統時,我偶爾需要創建實現代碼生成或編程配置註釋的類。
另一種方法涉及將註釋中包含的數據鏡像到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