lombok-@Accessors注解

@Accessors

文档翻译,为了看懂兵哥的代码,以及试试能不能达到翻译的信达雅。估计不可能。
Accessors注解

一个为getter和setter设计的更流畅的API

实验性(experimental)

lombok中有experimental的包

实验性因为:
1. 我们可能想将这些特性和更完全的性质支持概念融为一体(普通话:这些性能还在研究)
2. 新特性-需要社区反馈
目前的状态:positive。目前我们觉得这个特性可能会移出实验状态,没有或者有一些小的变动。

概况

@Accessors 注解用来配置lombok如何产生和显示getters和setters的方法。
默认情况下,lombok按照豆豆说明书产生getters和setters:例如一个名为pepper(弗兰特产辣椒,lombok的logo是一只小辣椒)属性的getter方法是getPepper。然而一些人可能为了一个更好看的API,想去打破豆豆说明书。@Acessors就是让我们做这个的。

一些程序员喜欢为他们的属性使用前缀。例如,他们用fPepper(fancy pepper? 豆豆跟pepper还是挺配哒)代替pepper。因为你不能用单元测试你的前缀的有效性,并且重构脚本可能将睡醒转化为局部变量或者方法的名字,我们强烈建议别这样做。并且,你的工具(例如你的编辑器)可以用特定的方法将标识符转向,如果你想这些信息被立马可见的话。然而,你也可以通过@Accessor列出你工程里所有的前缀。
@Accessors 因此有3个选择:
1. fluent 一个布尔值。如果为真,pepper的getter就是 pepper(),setter方法就是pepper(T newValue)。并且,除非特别说明,chain默认为真。
2. chain 一个布尔值。如果为真,产生的setter返回的this而不是void。默认是假。如果fluent=true,那么chain默认为真。
lombok-@Accessors注解_第1张图片
set方法返回的是对象的实例,因此可以直接再使用set方法或者直接调用函数
3. prefix 一系列string类型。如果显示,属性必须加上某些定义的前缀。每个属性名反过来与列表中的每个前缀进行比较,一个找到一个匹配,这个前缀被提取出来为属性创建基本的名字。前缀列表中不包含任何前缀也是合法的,为空则总是匹配。字符都是字母,紧接着前缀后的字符一定不能是小写字母。例如,pepper对前缀p不是相等匹配,而跟pEpper是匹配的(也就意味着属性的基本名字是epper)。
@Accessors注解可以在类和属性上使用。如果使用,这个注解应用在一个属性上,否则应用在这个类上。如果一个@Accessors注解在了一个属性,再对那个属性的类的@Accessors注解就会被忽略。
lombok-@Accessors注解_第2张图片
也就是在属性上增加注解,在类上的注解就会自动忽略;
使用前缀,匹配有前缀+大写字母这样的匹配才能自动生成忽略前缀的get方法和set方法。

支持的配置关键字

lombok.assessors.chain=[true|false](default:false)
如果设置为true,没有任何类被@Accessors注解,或者有类被注解但是没有为chain参数显式赋值,则表现为@Accessors(chain=true)

lombok.accessors.fluent=[ true | false](default:false)
如果设置为真,没有任何类被@Accessors注解,或者有类被注解对fluent参数没有显式赋值,则表现为@Accessors(fluent=true)

lombok.accessors.prefix+=afield prefix(default:empty list)
这是一个列表属性;条目可以通过 +=操作符添加。从父配置文件继承的前缀可以通过-=操作符移除。没有任何类被@Accessors注解,或者有类被注解但是注解对prefix参数显式的赋值,则表现为
@Accessors(prefix={prefixes listed in configuration})

lombok.accessors.flagUsage=[warning | error](default:not set)
如果配置了,lombok标出每个使用了@Accessors注解为一个警告还是一个错误。

附属细则

@Accessors注解也用在lombok不同的寻找getters的方法中,例如@EqualsAndHashCode(不懂)
如果提供了前缀列表,属性名没有一个以其中的一个前缀开头,则属性会被lombok完全忽略掉,并且会产生一个警告。

你可能感兴趣的:(lombok-@Accessors注解)