检测注释参数的完整性
Detection the completeness of Annotation's arguments
这是来自 https://en.wikipedia.org/wiki/Java_annotation
的示例
@Author(first = "Oompah", last = "Loompah")
Book book = new Book();
是否可以检测用户是否提供了所有需要的参数?例如,在这个测试用例中,如果参数只有 first = "Oompah",它需要被识别为不完整的(因为缺少 last = "Loompah")。目前我不能这样做,因为如果提供了不完整的参数,我可以获得注释的 默认值 。
非常感谢。
这取决于注解的声明。默认情况下,所有参数都是必需的。
@interface Author {
String first();
String last();
}
class Book {
public static void main(String[] args) {
@Author(first = "John")
Book book = new Book();
}
}
在此示例中,将出现编译时错误 error: annotation @Author is missing a default value for the element 'last'
。
因此,如果没有理由为注释参数设置默认值,则不应在其声明中用 default
标记。在这种情况下,必须提供每个参数。
这是来自 https://en.wikipedia.org/wiki/Java_annotation
的示例 @Author(first = "Oompah", last = "Loompah")
Book book = new Book();
是否可以检测用户是否提供了所有需要的参数?例如,在这个测试用例中,如果参数只有 first = "Oompah",它需要被识别为不完整的(因为缺少 last = "Loompah")。目前我不能这样做,因为如果提供了不完整的参数,我可以获得注释的 默认值 。 非常感谢。
这取决于注解的声明。默认情况下,所有参数都是必需的。
@interface Author {
String first();
String last();
}
class Book {
public static void main(String[] args) {
@Author(first = "John")
Book book = new Book();
}
}
在此示例中,将出现编译时错误 error: annotation @Author is missing a default value for the element 'last'
。
因此,如果没有理由为注释参数设置默认值,则不应在其声明中用 default
标记。在这种情况下,必须提供每个参数。