java - 无法从静态上下文引用非静态变量文件路径

标签 java

我有一个简单的Java程序如下:

public class HelloWorldPrinter {
    String filepath;

    public void setPath(String path){
        this.filepath = path;
    }

    public static void main(String[] args) throws PrintException, IOException {
        FileInputStream in = new FileInputStream(new File(filepath));
    }
}

我收到以下错误:

HelloWorldPrinter.java:40: error: non-static variable filepath cannot be referenced from a static context

FileInputStream in = new FileInputStream(new File(filepath));

我该如何解决这个问题?

最佳答案

一种选择是创建 HelloWorldPrinter 的实例:

public static void main(String[] args) throws PrintException, IOException {
    HelloWorldPrinter printer = new HelloWorldPrinter();
    printer.setPath("path/to/file");

    FileInputStream in = new FileInputStream(new File(printer.getPath()));
}

关于java - 无法从静态上下文引用非静态变量文件路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36281943/

相关文章:

java - 贾斯珀报告 : How to put more than 1000 values in a list into $X() statement

java - Set<字符串> getSet(字符串 s)

java - 如何使用流将所有映射键值连接成一个字符串,并对每个值进行替换?

java - 如何克服 hadoop 中的 java.lang.IncompatibleClassChangeError

java - 当按下 Enter 键时使用 Utilities.getRowStart 时出现 BadLocationException

java - 使用for循环比较多种投资选择

java - 如何以编程方式处理超出免费 Firebase 数据库限制可能发生的错误

java - 在 Cloud firebase 中使用另一个集合中的一个集合

java - 将yyMdd转换成java中的正常日期(十六进制月份数)

java - Oracle Java HotSpot VM 性能选项(+UseStringCache、+UseCompressedStrings、+OptimizeStringConcat)的当前状态是什么