您现在的位置:主页 > java教程 > >

被Java世界忽视的Lombok



时间: 2014-10-01 21:21     来源 : iteye      点击:

关键词: java    Lombok    guava   


在祖国65岁生日之际,道一声生日快乐,也祝大家国庆节happy。当大家选择和拥塞的公路较劲的时候,我选择了宅在家里用自己微薄的文字为Java中一个很方便的工具Lombok平反。 内容来自www.itxxz.com

 

copyright www.itxxz.com

忘记了什么时候看到Lombok这个东西,开始对它的感觉是读起来很霸气,有没有哈哈。 内容来自www.itxxz.com

渐渐的发现,这个东西还真是方便,可以在Java世界里面一直默默无闻不知道是什么原因。今天就给大家分享一下Lombok,让大家感受一下这厮到底有多方便,到底能让你的代码多精简。 内容来自www.itxxz.com

  内容来自www.itxxz.com

先上一个叫做val 的东东, 我们定义一个常量是不是都会这样写:

官网:http://www.itxxz.com

Java代码  
  1. import java.util.ArrayList;  
  2. import java.util.HashMap;  
  3. import java.util.Map;  
  4.   
  5. public class ValExample {  
  6.   public String example() {  
  7.     final ArrayList<String> example = new ArrayList<String>();  
  8.     example.add("Hello, World!");  
  9.     final String foo = example.get(0);  
  10.     return foo.toLowerCase();  
  11.   }  
  12.     
  13.   public void example2() {  
  14.     final HashMap<Integer, String> map = new HashMap<Integer, String>();  
  15.     map.put(0"zero");  
  16.     map.put(5"five");  
  17.     for (final Map.Entry<Integer, String> entry : map.entrySet()) {  
  18.       System.out.printf("%d: %s\n", entry.getKey(), entry.getValue());  
  19.     }  
  20.   }  
  21. }  

 但是, 自从有了Lombok, final + 类型 这种复杂的定义方式不再需要了。 IT学习者(www.itxxz.com)

 

IT学习者(www.itxxz.com)

Java代码  
  1. import java.util.ArrayList;  
  2. import java.util.HashMap;  
  3. import lombok.val;  
  4.   
  5. public class ValExample {  
  6.   public String example() {  
  7.     val example = new ArrayList<String>();  
  8.     example.add("Hello, World!");  
  9.     val foo = example.get(0);  
  10.     return foo.toLowerCase();  
  11.   }  
  12.     
  13.   public void example2() {  
  14.     val map = new HashMap<Integer, String>();  
  15.     map.put(0"zero");  
  16.     map.put(5"five");  
  17.     for (val entry : map.entrySet()) {  
  18.       System.out.printf("%d: %s\n", entry.getKey(), entry.getValue());  
  19.     }  
  20.   }  
  21. }  

 

本文来自www.itxxz.com

 

copyright www.itxxz.com

再来一个annotation 让大家尝尝鲜,来个@NotNull,看到他的介绍果然惊艳,叫“爱上NPE”,让我们一起见证一下如何爱上NPE: copyright www.itxxz.com

对比下面两端代码,你就会很明显的感觉到它的益处: IT学习者(www.itxxz.com)

  内容来自www.itxxz.com

Java代码  
  1. import lombok.NonNull;  
  2.   
  3. public class NonNullExample extends Something {  
  4.   private String name;  
  5.     
  6.   public NonNullExample(@NonNull Person person) {  
  7.     super("Hello");  
  8.     this.name = person.getName();  
  9.   }  
  10. }  

 

官网:http://www.itxxz.com

  copyright www.itxxz.com

Java代码  
  1. import lombok.NonNull;  
  2.   
  3. public class NonNullExample extends Something {  
  4.   private String name;  
  5.     
  6.   public NonNullExample(Person person) {  
  7.     super("Hello");  
  8.     if (person == null) {  
  9.       throw new NullPointerException("person");  
  10.     }  
  11.     this.name = person.getName();  
  12.   }  
  13. }  

  IT学习者(www.itxxz.com)
 估计看过guava代码的亲们应该都看到过这种annotation的。其实NotNull包括了两种Exception,有一个可选的annotation参数,通过exceptionType,可以决定当前位置是用IllegalArgumentException还是NPE,当然默认值就是NPE了。在Lombok中有一个好处就是如果使用了如@Data这样的Lombok annotation,也会默认出发@NotNull 的, 同时如果把@NotNull加到了原始类型上,你将收获一个warning。 官网:http://www.itxxz.com

  本文来自www.itxxz.com

via:秋旭BaLaBaLa

内容来自www.itxxz.com


  IT学习者(www.itxxz.com)






文章除注明转载外,均为IT学习者原创或编译
欢迎任何形式的转载,但务必请以超链接形式注明出处
本文出自:iteye
链接地址:http://www.itxxz.com



微信公众号:喝咖啡的螃蟹

喝咖啡的螃蟹
评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-->