• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

get set 오류

24.05.12 11:27 작성 조회수 74

0

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.

1. 강의 내용과 관련된 질문을 남겨주세요.
2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.
(자주 하는 질문 링크: https://bit.ly/3fX6ygx)
3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.
(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)

질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)

[질문 내용]

ItemRepository 파일 내 setId()와 getId() 부분에서 오류가 발생하고 있습니다. test 도 동일하게 오류 발생하고 있습니다.

 

어떤 점이 문제인지 확인 부탁 드립니다.

https://drive.google.com/file/d/1iGTvLwfkrcbkCev-IjHXoOyXlCuzA8y-/view?usp=sharing

 

 

답변 2

·

답변을 작성해보세요.

0

ysj98827님의 프로필

ysj98827

질문자

2024.05.12

삭제된 글입니다
OMG님의 프로필

OMG

2024.05.12

인텔리제이의 경우 롬복이 기본 번들로 설치가 되어 있습니다.

image

이클립스를 사용중이시라면, 롬복 플러그인을 별도로 설치하셔야 합니다.

혹은 롬복 어노테이션 자체를 사용하지 않는 방법도 있습니다.

Item 클래스를 아래 코드로 바꿔서 확인해보시겠어요?

package hello.itemservice.domain.item;

public class Item {

    private Long id;
    private String itemName;
    private Integer price;
    private Integer quantity;

    public Item() {
    }

    public Item(String itemName, Integer price, Integer quantity) {
       this.itemName = itemName;
       this.price = price;
       this.quantity = quantity;
    }

    public Long getId() {
       return this.id;
    }

    public String getItemName() {
       return this.itemName;
    }

    public Integer getPrice() {
       return this.price;
    }

    public Integer getQuantity() {
       return this.quantity;
    }

    public void setId(Long id) {
       this.id = id;
    }

    public void setItemName(String itemName) {
       this.itemName = itemName;
    }

    public void setPrice(Integer price) {
       this.price = price;
    }

    public void setQuantity(Integer quantity) {
       this.quantity = quantity;
    }

    public boolean equals(final Object o) {
       if (o == this) return true;
       if (!(o instanceof Item)) return false;
       final Item other = (Item) o;
       if (!other.canEqual((Object) this)) return false;
       final Object this$id = this.getId();
       final Object other$id = other.getId();
       if (this$id == null ? other$id != null : !this$id.equals(other$id)) return false;
       final Object this$itemName = this.getItemName();
       final Object other$itemName = other.getItemName();
       if (this$itemName == null ? other$itemName != null : !this$itemName.equals(other$itemName)) return false;
       final Object this$price = this.getPrice();
       final Object other$price = other.getPrice();
       if (this$price == null ? other$price != null : !this$price.equals(other$price)) return false;
       final Object this$quantity = this.getQuantity();
       final Object other$quantity = other.getQuantity();
       if (this$quantity == null ? other$quantity != null : !this$quantity.equals(other$quantity)) return false;
       return true;
    }

    protected boolean canEqual(final Object other) {
       return other instanceof Item;
    }

    public int hashCode() {
       final int PRIME = 59;
       int result = 1;
       final Object $id = this.getId();
       result = result * PRIME + ($id == null ? 43 : $id.hashCode());
       final Object $itemName = this.getItemName();
       result = result * PRIME + ($itemName == null ? 43 : $itemName.hashCode());
       final Object $price = this.getPrice();
       result = result * PRIME + ($price == null ? 43 : $price.hashCode());
       final Object $quantity = this.getQuantity();
       result = result * PRIME + ($quantity == null ? 43 : $quantity.hashCode());
       return result;
    }

    public String toString() {
       return "Item(id=" + this.getId() + ", itemName=" + this.getItemName() + ", price=" + this.getPrice() + ", quantity=" + this.getQuantity() + ")";
    }
}

 

0

OMG님의 프로필

OMG

2024.05.12

안녕하세요. ysj98827님, 공식 서포터즈 OMG입니다.

ItemRepository의 첫번째 줄의 package에서 p가 누락되어있더라구요.

확인해보시겠어요?

그 외에는 컴파일 단계에서 발생하는 오류는 없었는데, 이 문제가 아니라면 더 자세한 정보들을 남겨주셔야 도움 드릴 수 있을 것 같습니다.
image

감사합니다.

ysj98827님의 프로필

ysj98827

질문자

2024.05.12

해당 건 확인하여 package 변경 하였습니다. 그런데 아직 오류 해결이 되지 않았습니다.이클립스로 작성 중이며 아래와 같이 undefined for the type Item 이 뜹니다. 코드 작성은 맞게 한 것 같은데 getter setter나 lombok 오류 일까요?

OMG님의 프로필

OMG

2024.05.12

이클립스 롬복 설치 방법은 다음 링크를 참고해주세요 😀

https://congsong.tistory.com/31

ysj98827님의 프로필

ysj98827

질문자

2024.05.12

해당 건 새로 작성해주신 코드로 작성하니 오류 해결 되었습니다 감사합니다. Item.java 작성해주신 코드가 lombok 어노테이션을 사용 하지 않고 getter setter 를 사용할 수 있도록 작성 된 코드 일까요 ? 괜찮으시다면 해당 코드에 대해 좀 더 설명을 부탁 드려도 될까요?

OMG님의 프로필

OMG

2024.05.12

Item클래스에서 작성한 롬복 어노테이션 @Data가 생성하는 코드를 풀어서 추가해드린 것입니다.

따라서 @Data와 동일한 동작을 하는 코드라 할 수 있습니다.

인텔리제이에서는 롬복 어노테이션이 생성한 코드를 역으로 풀어서 작성해주는 기능이 포함되어 있는데 인텔리제이의 해당 기능으로 생성된 코드를 첨부드린 것이였습니다.

getter / setter / toString / equals, hascode 등이 @Data에 포함되어 있는데 올려드린 코드를 보면 그 기능이 포함(=재정의)된 것을 보실 수 있을거에요.