我已经像这样创建了我的自定义可选注释
import static java.lang.annotation.ElementType.FIELD;
import static java.lang.annotation.ElementType.METHOD;
import static java.lang.annotation.ElementType.PARAMETER;
import static java.lang.annotation.ElementType.CONSTRUCTOR;
import static java.lang.annotation.RetentionPolicy.RUNTIME;
import java.lang.annotation.Retention;
import java.lang.annotation.Target;
@Retention(RUNTIME)
@Target({FIELD,PARAMETER,METHOD,CONSTRUCTOR})
public @interface Optional {
String id() default "";
}
在我的课堂上,我像这样使用它:
public class A extends BaseClassA {
@Optional
private String id;
public A(@Optional final String id) {
this.id=id;
}
}
基本上我并不总是有这个参数的值。为了简单起见,我在本示例中省略了该类中的其他字段。
在我的测试中,我想像这样实例化
A anObject = new A("1000") //example of when Id exists
A anObject = new A() // example of when Id doesn't exist.
如何使用此可选注释创建带有/不提供 id 属性的对象?