@Accessors(chain=true)주석 오류 해결 방안
2848 단어 @Accessors주해
Cannot invoke setItemTitle(String) on the primitive type void
정 의 된 실체 클래스 는 다음 과 같 습 니 다.
@Data
public static class RefundOrderItem implements Serializable {
/**
*
*/
@JsonProperty("item_title")
private String itemTitle;
/**
*
*/
private BigDecimal quantity;
public RefundOrderItem() {
super();
}
public RefundOrderItem(String itemTitle, BigDecimal quantity) {
this.itemTitle = itemTitle;
this.quantity = quantity;
}
}
}
이런 서법 은 잘못 을 보고 하지 않 는 다.
request.getItems()
.add(new RefundOrderItem(productPO.getName(), quantity));
이런 서법 은 잘못 되 었 다.
request.getItems()
.add(new RefundOrderItem().setItemTitle(productPO.getName()).setQuantity(quantity)));
상술 한 잘못 보고 한 해결 방법 은 다음 과 같다.정 의 된 실체 클래스 에 주석 추가:@Accessors(chain=true)
실체 클래스 코드 는 다음 과 같 습 니 다.
@Data
@Accessors(chain = true)
public static class RefundOrderItem implements Serializable {
/**
*
*/
@JsonProperty("item_title")
private String itemTitle;
/**
*
*/
private BigDecimal quantity;
public RefundOrderItem() {
super();
}
public RefundOrderItem(String itemTitle, BigDecimal quantity) {
this.itemTitle = itemTitle;
this.quantity = quantity;
}
}
}
lombok 의@Accessors 주석 사용 에 주의 하 세 요.Accessors 번역 은 액세스 기 입 니 다.이 주 해 를 통 해 getter 와 setter 방법의 형식 을 제어 할 수 있 습 니 다.
특히 일반적인 get|set 가 아니라면 이러한 설정(chain=true 또는 chain=true)을 사용 하 십시오.일부 확장 도 구 를 사용 하면 문제 가 있 습 니 다.예 를 들 어 BeanUtils.populate 가 map 를 bean 으로 변환 할 때 사용 할 수 없습니다.구체 적 인 문 제 는 변환 소스 코드 분석 을 볼 수 있다.
@Accessors(fluent = true)#
flent 속성,getter,setter 방법 을 사용 하 는 방법 명 은 모두 속성 명 이 며,setter 방법 은 현재 대상 을 되 돌려 줍 니 다.
class Demo{
private String id;
private Demo id(String id){...} //set
private String id(){} //get
}
@Accessors(chain = true)#chain 속성 을 사용 하여 setter 방법 으로 현재 대상 을 되 돌려 줍 니 다.
class Demo{
private String id;
private Demo setId(String id){...} //set
private String id(){} //get
}
@Accessors(prefix = "f")#prefix 속성 을 사용 하면 getter 와 setter 방법 은 속성 이름 의 지정 접 두 사 를 무시 합 니 다(낙타 봉 이름 준수)
class Demo{
private String fid;
private void id(String id){...} //set
private String id(){} //get
}
이상 은 개인 적 인 경험 이 므 로 여러분 에 게 참고 가 되 기 를 바 랍 니 다.여러분 들 도 저 희 를 많이 응원 해 주시 기 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Spring이 @Value 메모를 통해 속성을 주입하는 몇 가지 방법에 대해 자세히 설명합니다.장면 만약 다음 속성 파일 dev.properties가 있다면, 아래의 tag를 주입해야 합니다 tag=123 PropertyPlaceholderConfigurer를 통해 코드 PreferencesPlaceholde...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.