eclipse集成lombok注解不起作用


安裝步驟:

  步驟一:lombok的下載地址為:https://projectlombok.org/download,jar包很小。這里也把依賴寫出來:

    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>1.18.2</version>
        <scope>provided</scope>
    </dependency>

  步驟二:雙擊jar包,jar包內的安裝器會自動運行尋找eclipse

  步驟三:選擇需要安裝的eclipse,然后點擊安裝(Install/Update),下一步會提示安裝成功。

  這就完成了安裝,是不是很簡單,我們看一下,安裝過程具體操作了什么:

  原來是做了兩部分,第一,把jar包復制到了eclipse安裝目錄,第二在eclipse.ini文件中加入了一句話:-javaagent:D:\eclipse_4.4\eclipse\lombok.jar

  接下來就是測試一下了,但是博主在這遇到了問題,耗費了一點時間來解決。

測試步驟:

  重啟eclipse,將jar包導入到工程,寫測試類,在這遇到了錯誤:

  報錯,這說明注解沒起作用,這就納悶了,我重新按步驟做了一遍,然后切換了lombok版本,這些方法都試了,結果還是不行,偶然注意到了下面這句:

  對,就是安裝成功的提示,后面標紅的沒問題,這是具體jar工作的的一環,但是前面標紅這句,我看了一下eclipse.ini文件,還真沒有,我抱着試試原則,結果就是這個原因,注解起作用了。

  最后看一下源文件和編譯后的文件。

Test.java:

package test; import lombok.Data; @Data public class Test { private String name; private String age; public static void main(String[] args) { Test se = new Test(); se.setName("zhangsan"); se.setAge("16"); System.out.println(se.getAge()); System.out.println(se.getName()); } }

Test.class:

package test; public class Test { private String name; private String age; public static void main(String[] args) { Test se = new Test(); se.setName("zhangsan"); se.setAge("16"); System.out.println(se.getAge()); System.out.println(se.getName()); } public String getName() { return this.name; } public String getAge() { return this.age; } public void setName(String name) { this.name = name; } public void setAge(String age) { this.age = age; } public boolean equals(Object o) { if (o == this) { return true; } else if (!(o instanceof Test)) { return false; } else { Test other = (Test) o; if (!other.canEqual(this)) { return false; } else { String this$name = this.getName(); String other$name = other.getName(); if (this$name == null) { if (other$name != null) { return false; } } else if (!this$name.equals(other$name)) { return false; } String this$age = this.getAge(); String other$age = other.getAge(); if (this$age == null) { if (other$age != null) { return false; } } else if (!this$age.equals(other$age)) { return false; } return true; } } } protected boolean canEqual(Object other) { return other instanceof Test; } public int hashCode() { boolean PRIME = true; byte result = 1; String $name = this.getName(); int result1 = result * 59 + ($name == null ? 43 : $name.hashCode()); String $age = this.getAge(); result1 = result1 * 59 + ($age == null ? 43 : $age.hashCode()); return result1; } public String toString() { return "Test(name=" + this.getName() + ", age=" + this.getAge() + ")"; } }

 具體怎么使用,得看文檔了:https://projectlombok.org/api/lombok/package-summary.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM