有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java无法对非静态对象进行静态引用

我正在编写这段简单的代码,但最后一行有一个错误:

"Cannot make a static reference to the non-static field br"

请解释我为什么会有这个错误。如果将变量设为静态变量(如static BufferedReader br),或者在main方法中声明该变量,则可以抑制该错误

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.lang.Object;

public class Solution {
    BufferedReader br;

    public static void main(String[] args) {

        br = new BufferedReader(new InputStreamReader(System.in));

    }

}

共 (1) 个答案

  1. # 1 楼答案

    尝试在main()内初始化BufferedReader,如下所示:

    BufferedReader bfr = new BufferedReader(...);
    

    由于您在方法之外初始化了它,因此它被视为类的属性,因此您必须使它成为静态的,或者创建类的对象来访问它