3
我具有註釋爲:Compell與特定的註釋的方法以具有特定參數/簽名
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface MyAnnotation {
String annotationArgument1() default "";
String annotationArgument2();
}
我有兩個類如:
class MyClass1 {
@MyAnnotation(annotationArgument1="ABC", annotationArgument2="XYZ")
public void method1(MyClass2 object) {
//do something
}
@MyAnnotation(annotationArgument1="MNO", annotationArgument2="PQR")
public void method2(MyClass2 object) {
//do something
}
}
class MyClass2 {
int num;
}
我想method1
和method2
(或任何其它方法在@MyAnnotation
註解的任何其他類中)僅採用一個參數作爲MyClass2
,因爲它們注有@MyAnnotation
。如果傳遞了其他參數,它必須給出編譯時錯誤。
實際上可以做到這一點嗎? 如果是的話,如何做到這一點,如果沒有,那麼可以做出這種行爲的替代方案是什麼?
我會詳細看看第一個選項,研究它,看看對我來說這是否可能,因爲我不知道這種方法。但我不明白第二種方法。你能把它和我的例子聯繫起來嗎? – Mukund
@Mukund我想我誤解了你的問題。我將刪除第二種方法。第一個應該工作。 – Puce