[java] "정적 컨텍스트에서 비 정적 메서드를 참조 할 수 없습니다."오류


Answers

setLoanItem은 인스턴스 메서드입니다.이 메서드를 호출하려면 Media 클래스의 인스턴스가 필요합니다. 미디어 유형 자체에서 호출하려고합니다.

정적 / 인스턴스 멤버가 작동하는 방법을 확인하려면 몇 가지 기본 객체 지향 자습서를 살펴 보는 것이 좋습니다.

Question

나는 setLoanItem 이라는 메서드를 가진 Media 라는 클래스를 가지고있다 :

public void setLoanItem(String loan) {
    this.onloan = loan;
}

다음과 같은 방법으로 GUI 라는 클래스에서이 메서드를 호출하려고합니다.

public void loanItem() {
    Media.setLoanItem("Yes");
}

하지만 오류가 나타납니다.

비 정적 메소드 setLoanItem (java.lang.String)은 정적 컨텍스트에서 참조 될 수 없습니다.

나는 GUI 클래스에서 Media 클래스의 onloan 변수를 "Yes"로 변경하려고합니다.

같은 오류 메시지로 다른 주제를 살펴 봤지만 아무 것도 클릭하지 않았습니다!




정적 데이터를 인스턴스 데이터에서 올바르게 분리해야합니다. 코드에서 onLoansetLoanItem() 은 인스턴스 멤버입니다. 참조 / 호출하려는 경우 인스턴스를 통해 그렇게해야합니다. 그래서 당신은

public void loanItem() {
    this.media.setLoanItem("Yes");
}

또는

public void loanItem(Media object) {
    object.setLoanItem("Yes");
}

그 인스턴스를 어떻게 전달할 것인지에 따라 달라집니다.




Related