• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 众包
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
倔强的篱笆
博客园    首页    新随笔    联系   管理    订阅  订阅

lombok @Accessors标签

@Accessors(chain = true)
@Data
@Slf4j
@NoArgsConstructor
public class Terminal extends IdentifiedObject {

  上午看新公司的项目时,碰到这样的一个标签  @Accessors(chain = true) 之前貌似从来没见过

  百度发现是lombok引入的标签 标签介绍(https://www.projectlombok.org/features/experimental/Accessors)

  具体就是这段

  大概的试了一下

  

package test;

import lombok.Data;
import lombok.experimental.Accessors;

@Data
public class AccessorsDemo {

    private String name;

    /*
     *fluent设置为true后get set方法没有get set前缀
     * 而且set方法会返回对象
     */
    @Accessors(fluent = true)
    private String nameFluent;

    /*
     *相对于正常情况下,此时的set方法会返回对象
     */
    @Accessors(chain = true)
    private String nameChain;

    /*
     * 此处的属性名要符合驼峰命名法才可以
     * 如果属性名仅为name则在运行期会抛异常(编译期IntelliJ 不会告警)
     */
    @Accessors(prefix = {"n"})
    private String nNamePrefix;


    public AccessorsDemo(String name)
    {
        this.name = this.nameFluent = this.nameChain = this.nNamePrefix = name ;
    }

    public static void main(String[] args) {

        AccessorsDemo demo = new AccessorsDemo("zhangsan");

        System.out.println(demo.getName());

        System.out.println(demo.nameFluent());//这里的get方法就没有 get前缀

        System.out.println(demo.getNameChain());

        System.out.println(demo.getNamePrefix());//getNamePrefix 正常情况下应该是getNNamePrefix 少了一个N

        demo.setName("lisi");//返回类型 void

        demo.nameFluent("lisi");//返回类型 AccessorsDemo

        demo.setNameChain("lisi");//返回类型 AccessorsDemo

        demo.setNamePrefix("lisi");//返回类型 void
    }
}

 

 

posted @ 2019-08-05 14:43  倔强的篱笆  阅读(238)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3