• @Data 注解引出的 lombok


    今天在看代码的时候, 看到了这个注解, 之前都没有见过, 所以就查了下, 发现还是个不错的注解, 可以让代码更加简洁.

    这个注解来自于 lombok,lombok 能够减少大量的模板代码,减少了在使用@Data 注解时, 需要导入lombok.Data,下面列举下 lombok提供的注解:

    val : 和 scala 中 val 同名, 可以在运行时确定类型;

    @NonNull : 注解在参数上, 如果该类参数为 null , 就会报出异常,  throw new NullPointException(参数名)

    @Cleanup : 注释在引用变量前, 自动回收资源 默认调用 close() 方法

    @Getter/@Setter : 注解在类上, 为类提供读写属性

    @Getter(lazy=true) :

    @ToString : 注解在类上, 为类提供 toString() 方法

    @EqualsAndHashCode : 注解在类上, 为类提供 equals() 和 hashCode() 方法

    @NoArgsConstructor, @RequiredArgsConstructor, @AllArgsConstructor : 注解在类上, 为类提供无参,有指定必须参数, 全参构造函数

    @Data : 注解在类上, 为类提供读写属性, 此外还提供了 equals()、hashCode()、toString() 方法

    @Value :

    @Builder : 注解在类上, 为类提供一个内部的 Builder

    @SneakThrows :

    @Synchronized : 注解在方法上, 为方法提供同步锁

    @Log :

    @Log4j : 注解在类上, 为类提供一个属性名为 log 的 log4j 的日志对象

    @Slf4j : 注解在类上, 为类提供一个属性名为 log 的 log4j 的日志对象



    @Cleanup("dispose") org.eclipse.swt.widgets.CoolBar bar = new CoolBar(parent, 0);
    @Cleanup InputStream in = new FileInputStream(args[0]);
    @Cleanup OutputStream out = new FileOutputStream(args[1]);

    上面一些注解是由包含关系的, 看需要什么方法就增加什么注解,@Log4j 和 @Slf4j 注解作用不小, 用在各层都可以,方便打 log。

    也可以查看官网 [ 官网 ] 

    简易例子:[ 只是用了@Data注解 ]

     
    public @Data class Student {
         
         private String stuId;
         private String stuName;
         private String stuNum;
         private String stuSex;
     }
     

    虽然说,eclipse 的快捷键生成这些代码会很快,但是知道总比不知道的好,万一别人用了,你看不懂别人的代码呢?那就不面子丢大了,还只是个实体类而已。

    我觉得最重要的是,代码行数少了很多,简洁的代码谁不喜欢呢?

    还有一点, 使用这个 lombok 需要安装 lombok 插件。

  • 相关阅读:
    影院售票系统
    返璞归真
    【C++】【STL】【map】基础知识干货
    书签-技术类
    正则表达式-正则表达式校验金额最多保留两位小数
    winCommand-cmd杀死进程
    idea快捷键-总结
    接口封装-泛型方法、泛型接口、lambda表达式【类似ios传递block】
    treeMap-get返回null,因为比较器出问题
    git-linux一个月更新80万行代码,如何保证项目稳健?
  • 原文地址:https://www.cnblogs.com/edda/p/14191883.html
Copyright © 2020-2023  润新知