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

“非静态方法不能从静态上下文引用”背后的原因是什么?[副本]

慕鸿波
2023-03-14

初学者最常见的错误是,您试图“静态”地使用类属性,而不创建该类的实例。它会给您留下前面提到的错误消息:

您可以将非静态方法设置为静态方法,也可以将该类的实例设置为使用其属性。

为什么?我不是要求解决办法。如果知道背后的原因是什么,我将不胜感激。最核心的原因!

private java.util.List<String> someMethod(){
    /* Some Code */
    return someList;            
}

public static void main(String[] strArgs){          
     // The following statement causes the error. You know why..
    java.util.List<String> someList = someMethod();         
}

共有2个答案

曹波鸿
2023-03-14

您试图调用的方法是实例级方法;您没有实例

静态方法属于该类,非静态方法属于该类的实例。

全丰
2023-03-14

你不能叫不存在的东西。由于您还没有创建对象,所以非静态方法还不存在。静态方法(根据定义)总是存在的。

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

  • 所以我尝试绑定我的Numpad键,以便在计算器应用程序中使用它们,但当我尝试从主窗口以字符串形式发送keyEvent时。java到我的MainWindowController公共void方法它给了我一个错误“不能从静态上下文引用非静态方法”,即使我的类都不是静态的?以下是主窗口代码: } 这里是MainWindowController文件(看keyPress方法)

  • 我想更改FrameLayout的背景。这是我现在使用的代码: 但出现以下错误: 无法从静态上下文引用非静态方法“setBackground(android.graphics.drawable.drawable)”。 怎么了?

  • 我从这行中得到了“无法从静态上下文引用非静态方法”错误:

  • mainactivity.java: xmlReader.java: (如果需要,我也可以为station.java和dbhandler.java添加代码) 我怎样才能绕过这个编程悖论呢?我通常能为这里的任何问题找到答案,但这是我第一次找不到答案。如果你知道我错过的解决方案的链接,请在下面发布。多谢。

  • 这是一个代码的一部分,但当我执行时,我得到了一个错误程序是关于线性规划对不起我的英语,或关于愚蠢的问题 “错误:不能从静态上下文引用非静态方法get_total_profity(String)