这个:不能在静态的上下文中使用

你能帮我下面的代码。 错误是: “不能在静态上下文中使用它”

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); } } 

请参阅“这个”关键字是指当前对象,因为哪个方法是优秀的。 因为你不能用类的实例调用静态方法。 这就是为什么“this”不能用于上面的例子中的静态方法,因为它试图打印当前的实例,而这个实例根本就没有创build。 所以,我想这就是为什么你有一个编译时错误。

他们的关键字是指类的实例 。 在静态上下文中,你没有实例,所以你不能引用它。

有关更多信息,请参阅此答案: Java中的“this”的含义是什么?

如果我们试图从一个静态的上下文中访问它,编译器现在可以猜测出你正在引用哪个实例。 主要是这里的静态方法。

在Java中,你不能在静态方法(静态上下文)中使用它。

Static方法不指向封闭类的任何实例。

静态方法无论如何不能引用“this”或“super”关键字

请参阅关键字的官方文档