- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我不完全理解注释变量和注释其类型之间的区别。在这种情况下,我应该更喜欢类型注释而不是声明注释吗?
@EmailField // can be used on String or Array/Collection of String-s
private String email;
private @EmailType String email2;
@EmailField
private List<@EmailType String> emails;
@Target(ElementType.TYPE_USE)
@interface EmailType {}
@Target(ElementType.FIELD)
@interface EmailField {}
最佳答案
Java 8 中的类型注解主要是为了支持更强的类型检查。
来自 https://docs.oracle.com/javase/tutorial/java/annotations/type_annotations.html :
Type annotations were created to support improved analysis of Java programs way of ensuring stronger type checking. The Java SE 8 release does not provide a type checking framework, but it allows you to write (or download) a type checking framework that is implemented as one or more pluggable modules that are used in conjunction with the Java compiler.
在你上面的例子中,你应该使用 @EmailField
字段注释,你还应该添加 @Retention(RetentionPolicy.RUNTIME)
这样你就可以使用反射来在运行时检查此注释,如下所示:
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
@interface EmailField {}
关于java - `ElementType.FIELD` 与 `ElementType.TYPE_USE`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37898797/
我目前正在学习Java。我只是对注释 ElementType.TYPE_USE 感到困惑。下面的代码来自一本书。 这个语句是强制转换还是它的作用。 int roundValue = (@NonZero
我想为具有多个 @Valid 的有效负载定义一个通用类元素为@Validated通过我的 Spring Boot 应用程序。全类同学要去图书馆。 如果我定义一个如下所示的泛型类: class Grou
使用新的 Java 8 ElementType.TYPE_USE选项,除了许多其他巧妙的事情之外,还可以注释(多维)数组的每个组件。例如,现在我可以在一个简单的字符串数组中注释整个类型 String[
考虑以下因素: class A implements @X B, C, @X D {} 是否可以在运行时检索实现声明是否在每个实现接口(interface)上包含@X? 因此,在上面的示例中,对于 B
使用 Java 8,如果我有这个 TYPE_USE注释: @Target({ElementType.TYPE_USE}) @Retention(RetentionPolicy.RUNTIME) pub
我知道 hibernate validator 支持 TYPE_USE 注释:虽然它没有定义自己的注释,但它允许您定义和使用自定义注释。 我可以正确地定义和验证这样的注释(很快就会编写代码),但是我想
我不完全理解注释变量和注释其类型之间的区别。在这种情况下,我应该更喜欢类型注释而不是声明注释吗? @EmailField // can be used on String or Array/Colle
我正在实现一个注释处理器,以确保标有注释的元素是实现特定接口(interface)的类的实例,或者是实现特定接口(interface)的类型的使用: @Documented @Target(value
这个问题在这里已经有了答案: Why annotation on generic type argument is not visible for nested type? (2 个答案) 关闭 5
我有这个案例: public class SomeClass { public @A3 S myMethod() { ...} } 我正在尝试在绑定(bind)的 T 上获取 @A2 注释。
我正在尝试编写一个简单的验证库,其中包含使用 Java 8 中新的 TYPE_USE 目标的注释。访问这些东西的方式非常复杂,给我留下了两个非常困惑的代码,它们做的事情完全一样,但也与他们实际打算做的
我是一名优秀的程序员,十分优秀!