溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

怎么簡(jiǎn)化java代碼

發(fā)布時(shí)間:2022-02-23 14:52:39 來(lái)源:億速云 閱讀:126 作者:iii 欄目:開發(fā)技術(shù)

這篇文章主要介紹“怎么簡(jiǎn)化java代碼”的相關(guān)知識(shí),小編通過(guò)實(shí)際案例向大家展示操作過(guò)程,操作方法簡(jiǎn)單快捷,實(shí)用性強(qiáng),希望這篇“怎么簡(jiǎn)化java代碼”文章能幫助大家解決問(wèn)題。

原理

lombok 可以通過(guò)注解的方式,在編譯的時(shí)候?yàn)閷傩陨蓸?gòu)造器、getter/setter、equals、hashcode、toString方法。這樣我們就不用再手動(dòng)去寫這些方法了。

引用

lombok 的使用需要引用 jar 包,可以在官網(wǎng)下載,也可以使用 maven 添加對(duì)應(yīng)依賴。

maven 依賴:

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

使用

在類上使用@Data注解,會(huì)為類的所有屬性自動(dòng)生成setter/getter、equalscanEqual、hashCode、toString方法(如為final屬性,則不會(huì)為該屬性生成setter方法)。

public class DataExample {
  private final String name;
  private int age;
  private double score;
  private String[] tags;
  
  public DataExample(String name) {this.name = name;}

  public String getName() {return this.name;}
  public void setAge(int age) {this.age = age;}
  public int getAge() {return this.age;}
  public void setScore(double score) {this.score = score;}
  public double getScore() {return this.score;}
  public String[] getTags() {return this.tags;}
  public void setTags(String[] tags) {this.tags = tags;}
}

上面的代碼是一個(gè)簡(jiǎn)單的 pojo 類,當(dāng)我們使用 lombok 之后:

import lombok.AllArgsConstructor;import lombok.Data;import lombok.EqualsAndHashCode;import lombok.NoArgsConstructor;import lombok.ToString;@Data
public class DataExample {
  private final String name;
  private int age;
  private double score;
  private String[] tags;
}

有沒(méi)有發(fā)現(xiàn)?代碼量瞬間減少了一半?其實(shí)使用@Data生成的代碼遠(yuǎn)不止這些,他還生成了equals、canEqual、hashCode、toString的方法,在 IDE 中可以嘗試調(diào)用一下就能發(fā)現(xiàn)了。

@Data注解的目標(biāo)是生成全部需要自動(dòng)生成的代碼,但是有時(shí)候我們并不需要完全自動(dòng)生成,這時(shí)候就可以使用單個(gè)的修飾符來(lái)注解了。

@Data集合了@ToString、@EqualsAndHashCode、@Getter/@Setter、@RequiredArgsConstructor的所有特性。換言之,這些注解也可以單個(gè)使用,接下來(lái)以@Getter/@Setter為例來(lái)介紹一下上面代碼可以化簡(jiǎn)成什么樣子。

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.ToString;

public class DataExample {
    @Getter
    private final String name;    @Getter @Setter    private int age;
    @Getter @Setter
    private double score;
    @Getter @Setter    
    private String[] tags;
}

關(guān)于“怎么簡(jiǎn)化java代碼”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí),可以關(guān)注億速云行業(yè)資訊頻道,小編每天都會(huì)為大家更新不同的知識(shí)點(diǎn)。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI