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

被Java世界忽视的Lombok



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

关键词: java    Lombok    guava   


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

copyright www.itxxz.com

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

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

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

内容来自www.itxxz.com

 

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

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

copyright 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)

  copyright 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. }  

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

 

itxxz.com

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

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

对比下面两端代码,你就会很明显的感觉到它的益处: 官网:http://www.itxxz.com

 

官网:http://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

 

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. }  

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

IT学习者(www.itxxz.com)

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

via:秋旭BaLaBaLa

本文来自www.itxxz.com


 

itxxz.com






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



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

喝咖啡的螃蟹
评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
  • 送白菜
    2017-03-21 17:32:48发表

    ╴领88元 银河国际赌城 英雄联盟 爱拼网 狮子会 澳门VIP 波音 ➀➀➇Ⓣ.ⓃⒺⓉ

  • 郑欢莲
    2017-03-21 07:39:29发表

    工厂直批ꔣ Hello Kitty(哈喽Kitty) wx31.com

  • 奢侈品包包
    2017-03-19 23:53:47发表

    高仿包包ﬤ Brian Atwood(布莱恩●艾特伍德) Parssar(芭尚) Marc Jacobs(马克●雅可布) Versace(范思哲) XianLiLai(仙丽莱) BOYY 威信 LoveMeJck