questo: non è ansible utilizzarlo in un contesto statico

Potete per favore aiutarmi con il codice qui sotto. L’errore è: “Imansible utilizzare questo in un contesto statico”

public class Sample2 { /** * @param args */ public static void main(String[] args) { Sample2 sam=new Sample2(); //Below code works fine System.out.println(sam); //Below code is displaying error System.out.println(this); } } 

Vedi, “questa” parola chiave si riferisce all’object corrente a causa di quale metodo è in fase di esecuzione. Come, non puoi chiamare il metodo statico usando l’istanza della class. Questo è il motivo per cui “questo” non può essere utilizzato nell’esempio precedente in un metodo statico poiché sta tentando di stampare un’istanza corrente che non è stata creata affatto. Quindi, penso che questo sia il motivo per cui c’è un errore in fase di compilazione che stai ottenendo.

Essi parole chiave this riferiscono all’istanza della class. In un contesto statico, non hai istanze, quindi non puoi segnalarlo.

Per ulteriori informazioni, fare riferimento a questa risposta: qual è il significato di “questo” in Java?

Se proviamo ad accedere a questo da un contesto statico, il compilatore non ha modo di indovinare quale istanza, ci si riferisce anche. main è un metodo statico qui.

In java non puoi usare questo in metodi statici (contesto statico).

Static metodi Static non puntano a nessuna istanza della class che include.

Un metodo statico non può riferirsi a “questo” o “super” parole chiave in alcun modo

Consulta i documenti ufficiali su questa parola chiave