주석은 @Data와 유사합니다. 기본적으로 모든 멤버 변수는 비공개 최종 수정으로 정의되며 set 메서드는 생성되지 않습니다 |
|
2. Lombok 주석 실패 이유
pom에 Lombok 종속성을 도입한 후. 통합 프로세스1. Lombok 종속성 소개:
다음 코드를 복사하여 pom에 삽입합니다.
<!--导入lombok小辣椒驱动依赖,用来生成get/set等方法依赖-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<!--<optional>true</optional>-->
<version>1.18.12</version>
<scope>provided</scope><!--自动生成有参无参构造-->
</dependency>
2. IDEA에서 파일-》설정-》플러그인-》을 클릭하고 Lombok을 검색한 후 플러그인을 설치하고 IDEA를 다시 시작하세요.
3. Lombok을 사용하여 Getter/setter 속성 및 기타 메소드 프로그램 코드 예제 생성 a. Lombok은 엔터티 클래스를 작성하는 데 사용되지 않습니다(프로그램은 뚱뚱하고 보기 흉함) IDE 자체 단축키를 사용하여 자동으로 getter/setter 생성 방법:
package com.dvms.entity;
/*
*文件名: Anglerecord
*创建者: CJW
*创建时间:2020/6/6 14:40
*描述: 记录
*/
public class Record {
private String time;
private String device;
private String state;
public Record(String time, String device, String state) {
this.time = time;
this.device = device;
this.state = state;
}
public Record() {
}
public String getTime() {
return this.time;
}
public String getDevice() {
return this.device;
}
public String getState() {
return this.state;
}
public Record setTime(String time) {
this.time = time;
return this;
}
public Record setDevice(String device) {
this.device = device;
return this;
}
public Record setState(String state) {
this.state = state;
return this;
}
public boolean equals(final Object o) {
if (o == this) return true;
if (!(o instanceof Record)) return false;
final Record other = (Record) o;
if (!other.canEqual((Object) this)) return false;
final Object this$time = this.getTime();
final Object other$time = other.getTime();
if (this$time == null ? other$time != null : !this$time.equals(other$time)) return false;
final Object this$device = this.getDevice();
final Object other$device = other.getDevice();
if (this$device == null ? other$device != null : !this$device.equals(other$device)) return false;
final Object this$state = this.getState();
final Object other$state = other.getState();
if (this$state == null ? other$state != null : !this$state.equals(other$state)) return false;
return true;
}
protected boolean canEqual(final Object other) {
return other instanceof Record;
}
public int hashCode() {
final int PRIME = 59;
int result = 1;
final Object $time = this.getTime();
result = result * PRIME + ($time == null ? 43 : $time.hashCode());
final Object $device = this.getDevice();
result = result * PRIME + ($device == null ? 43 : $device.hashCode());
final Object $state = this.getState();
result = result * PRIME + ($state == null ? 43 : $state.hashCode());
return result;
}
public String toString() {
return "Record(time=" + this.getTime() + ", device=" + this.getDevice() + ", state=" + this.getState() + ")";
}
}
b .롬복 생성 방법 소개(프로그램이 슬림하고 보기 편함)필요에 따라 수동으로 주석을 추가하거나 마우스 오른쪽 버튼을 클릭할 수 있습니다 -》Refactor-》Lomok- 》
package com.dvms.entity;
/*
*文件名: Anglerecord
*创建者: CJW
*创建时间:2020/6/6 14:40
*描述: 记录
*/
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;
import lombok.experimental.Accessors;
@Data
@ToString
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = true) //链式调用
public class Record {
private String time;
private String device;
private String state;
}
장점과 단점(가능한 문제 이것이 해결책입니다)장점:Lombok은 주석을 통해 컴파일 타임에 속성에 대한 getter/setter, equals, toString 및 기타 메서드를 자동으로 생성할 수 있으므로 수동으로 수행해야 하는 문제를 제거합니다. 이러한 코드를 다시 작성하고 프로그램 엔터티 클래스(엔티티/pojo) 코드를 더욱 "가늘고" 세련되게 보이게 만듭니다.
단점(발생 가능한 문제): 개인 개발인 경우 다음과 같은 문제가 발생할 수 있습니다.
1. Lombok은 현재 JDK1.8을 지원하지만 JDK 버전을 업그레이드한 후에는 유효하지 않을 수 있습니다.
a. 단축키 Alt+Insert는 getter/setter, equals, hashCode, toString 및 생성자 메서드를 생성합니다.
DeLombok 최신 버전에서는 이 도구를 사용하여 위 메서드를 생성할 수 있습니다. 마우스 오른쪽 버튼을 클릭하고 Refactored->DeLombok:
을 선택하거나 java -jar lombok.jar delombok src -d src-delomboked
명령을 사용하여 Lombok 주석으로 구현된 클래스 파일을 Lombok을 사용하지 않는 Java 소스 파일로 변환합니다. Lombok을 사용하면 JavaBean 캡슐화를 단순화할 수 있지만 가독성에 영향을 미칩니다. 또한 이 주석은 @AllArgsConstructor를 사용하지 마십시오. 이 주석은 객체를 초기화할 때 외부 세계에 클래스의 모든 속성을 수정할 수 있는 기회를 제공합니다. 이는 매우 안전하지 않습니다. Java 클래스의 객체는 개정되어서는 안 됩니다. 동시에 Java 클래스에 여러 속성이 있는 경우 Lombok은 여러 매개변수 생성자를 Java 클래스에 주입하고 생성자 매개변수의 순서는 Lombok에 의해 완전히 제어됩니다.
3. Lombok을 사용하여 Javabean 코드를 작성한 후에는 이 Javabean을 사용하는 다른 코드에 Lombok 종속성을 도입해야 하며 코드 결합 정도가 증가합니다. 동시에 IDE에 Lombok 플러그인도 설치해야 합니다.
4. 공동 개발이라면 다음 사항에 주의해야 합니다.
Lombok 플러그인이 우리 프로그램 코드에 도입되면 다른 사람들도 Lombok 플러그인을 다운로드하여 도입해야 합니다. 그렇지 않으면 Java 코드가 제대로 실행되지 않을 수 있습니다.