Lombok插件中常用注解

  lombok 提供了简单的注解的形式来帮助我们简化消除一些必须有但显得很臃肿的 java 代码。

@Data :注解在类上;提供类所有属性的 getting 和 setting 方法,此外还提供了equals、canEqual、hashCode、toString 方法

@Setter:注解在属性上;为属性提供 setting 方法

@Getter:注解在属性上;为属性提供 getting 方法

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

@NoArgsConstructor:注解在类上;为类提供一个无参的构造方法

@AllArgsConstructor:注解在类上;为类提供一个全参的构造方法

@NonNull:注解在参数上 如果该参数为null 会throw new NullPointerException(参数名);

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

  @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]);


介绍一下Lombok中的Cleanup这个annotation , 他的方便之处,大家在代码中一睹风采:

 

使用前:

Java代码   收藏代码
  1. import java.io.*;  
  2.   
  3. public class CleanupExample {  
  4.   public static void main(String[] args) throws IOException {  
  5.     InputStream in = new FileInputStream(args[0]);  
  6.     try {  
  7.       OutputStream out = new FileOutputStream(args[1]);  
  8.       try {  
  9.         byte[] b = new byte[10000];  
  10.         while (true) {  
  11.           int r = in.read(b);  
  12.           if (r == -1break;  
  13.           out.write(b, 0, r);  
  14.         }  
  15.       } finally {  
  16.         if (out != null) {  
  17.           out.close();  
  18.         }  
  19.       }  
  20.     } finally {  
  21.       if (in != null) {  
  22.         in.close();  
  23.       }  
  24.     }  
  25.   }  
  26. }  

 

 

使用后:

 

 

Java代码   收藏代码
  1. import lombok.Cleanup;  
  2. import java.io.*;  
  3.   
  4. public class CleanupExample {  
  5.   public static void main(String[] args) throws IOException {  
  6.     @Cleanup InputStream in = new FileInputStream(args[0]);  
  7.     @Cleanup OutputStream out = new FileOutputStream(args[1]);  
  8.     byte[] b = new byte[10000];  
  9.     while (true) {  
  10.       int r = in.read(b);  
  11.       if (r == -1break;  
  12.       out.write(b, 0, r);  
  13.     }  
  14.   }  
  15. }  

 

 

单单从代码的行数上面就可以知道已经精简了不少,同时,代码的可读性也进一步提高。从代码中我们可以容易的看出,@Cleanup的作用就是在当前变量不在有效范围内的时候,对其进行自动的资源回收。在Java中的Stream上使用Cleanup Annotation,就是对其调用close方法。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值