Lombok 操作手冊(一)

這裏介紹一款工具,用來某種程度上解釋下爲啥我在 GitHub 上 號召代碼整潔。

具體優點不在這裏贅述,核心就是能少些代碼完成同樣的功能

這款工具的名字叫做 Lombok 官網地址

安裝教程我以及怎樣在項目中引用 我就不寫了,具體去看官網視頻,但是關於安裝有兩點注意事項要說下

  • 建議下載下來jar自己雙擊安裝,選擇Eclipse路徑時候選到exlipse.ini 所在的那一級目錄下,安裝完成後在這個目錄下會多一個jar包,同時eclipse.ini末尾多了這麼一句
  • -javaagent:lombok.jar
  • 如果你是通過快捷方式啓動Eclipse ,那麼安裝完之後,可能無法啓動,原因是他忽略了配置文件的寫入,建議去目錄下重新生成快捷方式
接下來主要說說API
       @Log 日誌相關的操作,這個看官方教程 點我
       
        val:這個嚴格說不算是註解,是一個代替生命final 屬性的簡化 
        
	/**
	 * val 的運用
	 * @return
	 */
	public String finalExample() {
		
		// 一下兩句代碼效果一樣 區別在於 lombok 的運用
		 val  example = new ArrayList<String>();
		//final ArrayList<String> example = new ArrayList<String>();
		
		example.add("Hello");
		example.add("world");
		
		// 一下兩句代碼效果一樣 區別在於 lombok 的運用
		  val foo = example.get(0);
		//final String foo = example.get(0);
		
		return foo.toLowerCase();
		
	}

           @NonNull 的運用
           
	/**
	 * @NonNull 的運用
	 * 在入參列表中 加入這個註解 就可以省去 方法內部的if 爲空的判斷
	 * 這個註解會自動在方法內對該參數進行是否爲空的校驗,如果爲空,則拋出NPE
	 */
	
	private String id;
	
	public void NonNullExample(@NonNull LombokUser user) {
		
		if(user == null){
			throw new NullPointerException("用戶對象爲空");
		}
		
		this.id = user.getId();
	}

           @SneakyThrows的運用
           
	/**
	 * @SneakyThrows
	 * 作用就是拋出異常
	 * 對於擬不想處理的異常,直接在類上這樣拋出,分分鐘簡化代碼
	 * @param bytes
	 * @return
	 */
	@SneakyThrows(UnsupportedEncodingException.class)
	public String utf2Strinig(byte [] bytes) {
		
		return new String(bytes,"UTF-8");
		
	}

@Getter(lazy=true) 的運用
           
	/**
	 * @Getter(lazy=true)
	 * 這個註解的作用相當於緩存,就是我在第一次調用後這個值會一直存在,不在浪費資源去重複生成了
	 * 使用了getter這個annotation可以在實際使用到cached的時候生成cached,同時,Lombok會自動去管理線程安全的問題,不會存在重複賦值的問題
	 */
	
	@Getter(lazy=true)private final String lazyCache = newLazyData();

	private String newLazyData() {
		
		StringBuilder builder =new StringBuilder();
		
		for(int i = 0; i < 10*10; ++i) {
			
			builder.append("data" + i);
			
		}
		return builder.toString();
		
		
	}

發佈了40 篇原創文章 · 獲贊 29 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章