인프런 커뮤니티 질문&답변

ysj98827님의 프로필 이미지

작성한 질문수

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

상품 도메인 개발

get set 오류

작성

·

171

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
질문자

삭제된 글입니다

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

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

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

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

확인해보시겠어요?

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

감사합니다.

ysj98827님의 프로필 이미지
ysj98827
질문자

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

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

https://congsong.tistory.com/31

ysj98827님의 프로필 이미지
ysj98827
질문자

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

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

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

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

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

ysj98827님의 프로필 이미지

작성한 질문수

질문하기