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

的非静态变量不能从静态上下文中引用[重复]

吕英豪
2023-03-14

我试图从main方法中的OpenFile类调用CreateFile方法,但我一直得到这样的错误:我不能从静态上下文调用非静态变量

public class OpenFile {

    private Formatter file;

    public void createFile() throws FileNotFoundException{

        try{
            file = new Formatter("test.txt");
        } catch(Exception e) {
            System.out.println("Error creating file.");
    }
    }
OpenFile of = new OpenFile();

public static void main(String[] args) {
    // TODO code application logic here

    of.createFile();
    intro();
    createAndShowRibbon();
    createAndShowNormalUI();

}

多谢了。

共有1个答案

慕佑运
2023-03-14
OpenFile of = new OpenFile();

应该是

static OpenFile of = new OpenFile();

您正在从静态void main方法访问它。如果该变量未声明为statice,则静态执行时该变量对方法将不可用。

 类似资料:
  • 我最近开始用Java编码,我有一个关于轮盘赌/挖掘游戏(终端)的问题。 每次尝试使用“bank.amount”购买特定商品时,都会出现以下错误: 这是我的shop.java文件 如果你需要更多的代码(例如,我的主类或银行类),请随时问我!

  • 我是Android编码的n00b,今天我想尝试使用定位服务。 我设置了一个简单的类和一个简单的main,只是为了得到经度和纬度。 但当我尝试调用retrive的构造时,long and latitude Android Studio弹出了一个错误: 错误:(33,16)错误:无法从静态上下文引用非静态变量纬度 这是我的位置班

  • 我编写了以下测试代码: 但会出现以下错误: 我如何让我的方法识别我的类变量?

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

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

  • 我知道这个问题已经被问了很多很多次,我也读过很多答案,但是我不知道如何解决我的问题。以下是我的代码: 我最初确实通过更改来解决此问题: 到 虽然这确实有效,但我觉得这不是一个好方法。我读过一些关于实例变量的内容,但我不知道如何做到这一点。 谢谢