this:不能在静态上下文中使用它

Cyb*_*rgz 20 java this

你能帮我解决下面的代码吗?错误是:"无法在静态上下文中使用它"

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);
    }
}
Run Code Online (Sandbox Code Playgroud)

小智 29

请参阅"this"关键字指的是当前对象,因为哪种方法处于优先级.因为,您不能使用类的实例调用静态方法.这就是为什么"这个"不能在上面的例子中用于静态方法,因为它试图打印当前没有创建的实例.所以,我认为这就是为什么你会得到一个编译时错误.

  • 其实.您可以通过使用已声明静态方法的类的对象来调用静态方法.编译器不会给出错误.我们不这样做是因为它是调用/使用静态方法的一种非常糟糕的方式.:) (3认同)

Mat*_*ten 17

它们是关键字this指的是类的实例.在静态上下文中,您没有实例,因此您无法引用它.

有关更多信息,请参阅以下答案:Java中"this"的含义是什么?