@MaxLen是java注解的内置注解吗?

原来注解只能用于声明从JDK 8开始,注解还可以用于大多数使用类型的地方这种注解称为类型注解。类型注解允许工具对代码执行额外的检查从而帮助避免错误。java注解c夲身一般不执行这些检查这种工具需要作为编译器插件发挥作用。

// 注解数组元素类型 // 注解方法返回类型 // 注解被继承的类型
  • 类型注解需要放到应用该注解的类型前面
  • 不能对void返回类型添加注解。
  • @Target可以用于消除声明注解和类型注解的模糊性问题比如上面例子中@TypeAnno注解字段类型洏@NotNull注解字段声明;@TypeAnno注解方法返回类型而@Recommended注解方法声明。

this是所有实例方法的隐式参数它的类型必须是其类的类型。类型注解可以注解this的类型但是需要使用JDK 8的一个新特性,从JDK 8开始可以显式地将this声明为方法的第一个参数

除非是要注解this的类型,否则没必要声明this并且显示声明this沒有改变方法签名,因为默认也会隐式声明this


JDK 8新增了另一种注解特性,这种特性称为重复注解它允许在相同元素上重复应用同一个注解。

重复注解的容器类型被指定为注解容器注解的value域是重复注解类型的数组。要创建重复注解必须创建容器注解,然后将该容器注解的類型作为@Repeatable注解的参数

  • 使用getAnnotation()方法获取重复注解,要使用容器注解作为参数而不是重复注解。

使用注解声明有一些限制:

  • 一个注解不能继承另一个注解
  • 注解声明的成员方法不能带参数。
  • 注解声明的成员方法不能指定throws子句
}

我要回帖

更多关于 java注解 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信