[Java] Errore "Metodo non statico non può essere referenziato da un contesto statico"



Answers

setLoanItem è un metodo di istanza, il che significa che hai bisogno di un'istanza della classe Media per chiamarla. Stai tentando di chiamarlo sul tipo di media stesso.

Si consiglia di esaminare alcune esercitazioni di base orientate agli oggetti per vedere come funzionano i membri statici / di istanza.

Question

Ho una classe di nome Media che ha un metodo chiamato setLoanItem :

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

Sto cercando di chiamare questo metodo da una classe denominata GUI nel modo seguente:

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

Ma sto ottenendo l'errore

metodo non statico setLoanItem (java.lang.String) non può essere referenziato da un contesto statico

Sto semplicemente cercando di cambiare la variabile onloan nella classe Media su "Sì" dalla classe GUI .

Ho esaminato altri argomenti con lo stesso messaggio di errore, ma non si sta facendo clic!




È necessario separare correttamente i dati statici dai dati di istanza. Nel tuo codice, onLoan e setLoanItem() sono membri di istanza. Se vuoi fare riferimento / chiamarli, devi farlo tramite un'istanza. Quindi vuoi entrambi

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

o

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

dipende da come si vuole passare quell'istanza in giro.




Links