当前位置: 首页 > 知识库问答 >
问题:

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

吕永嘉
2023-03-14

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

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

共有2个答案

宦高岑
2023-03-14

他们的关键字this引用类的实例。在静态上下文中,没有实例,因此不能引用它。

更多信息,参考这个答案:“这个”在Java是什么意思?

孙钱青
2023-03-14

请看,“this”关键字指的是当前对象,因为该对象的方法是在excution下的。作为,不能使用类的实例调用静态方法。这就是为什么“this”不能在上面的示例中用于静态方法,因为它正在尝试打印根本没有创建的当前实例。所以,我认为这就是为什么会出现编译时错误的原因。

 类似资料:
  • 问题内容: 您能帮我用下面的代码吗?错误是: “不能在静态上下文中使用此” 问题答案: 参见,“ this”关键字指的是当前对象,这是由于正在执行哪种方法。不能使用类的实例调用静态方法。这就是为什么不能在上面的示例中以静态方法使用“ this”的原因,因为它试图打印当前未创建的当前实例。因此,我认为这就是为什么您会遇到编译时错误。

  • 问题内容: 在UNI atm上做Java课程,我遇到了骰子问题。 我有以下内容: 编译时,我得到:无法从静态上下文引用非静态变量n。我如何解决这个问题,同时让它从用户给定的值中随机化? 问题答案: 不是静态变量,因此您不能以静态方式()引用它。 由于它是类中的实例变量,并且您正在类中引用它,因此可以使用代替。

  • 问题内容: 这个问题已经在这里有了答案 : 7年前关闭。 可能重复: 为什么我会得到“无法从静态上下文引用的非静态变量”? 这是代码 错误说: 非静态类 Node 不能从静态上下文中引用 为什么不应该在main()方法中引用Node类? 问题答案: Java中的非静态嵌套类包含对父类 实例 的隐式引用。因此,要实例化a ,您还需要具有一个实例。在静态上下文(主要方法)中,没有要引用的实例。因此,编

  • 问题内容: 我想一劳永逸地理解这一点。 为此,请原谅下面粘贴的大量代码,但是我不想遗漏任何细节。 我唯一更改的是加载的URL。但这不会导致错误。 我想将我的函数称为“ readPosiitons ”。简单的解决方案,使其静态。真正的解决方案,我不确定。 请帮助我更好地了解如何以正确的方式解决此错误。 谢谢!! 问题答案: 真正的解决方案?不要在方法中放太多东西。那是给菜鸟的。 Java是一种面向对

  • 问题内容: 我是Java新手,我正在尝试通过递归函数部署斐波那契跟踪,然后计算运行时间。这是我设法编写的代码: 问题是,当我尝试将其转换为字节码时,出现以下错误: 我想知道是什么问题?! 问题答案: 更改 至 并使该方法静态。 或者,改变 至

  • 错误来自此行板状态 addme = 新板状态(); 由于某种原因,它所指向的非静态变量是“新”的。我不清楚如何修复这个错误,因为new不应该是一个变量,也不是。 查看stackoverflow记录,该错误通常来自非静态方法,通常通过将该方法设为静态或完全绕过该方法来解决。T 下面的代码是为了引用这个语句前后发生的事情。 }……