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 楼答案
尝试在main()内初始化BufferedReader,如下所示:
由于您在方法之外初始化了它,因此它被视为类的属性,因此您必须使它成为静态的,或者创建类的对象来访问它