我怎样才能引用从静态方法(比如main())全局定义的Scanner对象。也就是说,如何使Scanner对象成为静态。
计划(#以参考我的问题):
import java.util.Scanner;
class spidy {
Scanner input = new Scanner(System.in); /*DECLARING SCANNER OBJECT OUTSIDE MAIN METHOD i.e Static method */
public static void main(String args[]) {
System.out.println("Enter a number");
int n = input.nextInt();
}
}
错误: 非静态变量输入不能从静态内容中引用
答案 0 :(得分:5)
如果我理解你的问题,那么你可以改变这个
Scanner input = new Scanner(System.in);
to(所有其他类都可见 - 你说全球)
public static Scanner input = new Scanner(System.in);
或(当前班级可见 - 即main()
)
private static Scanner input = new Scanner(System.in);
答案 1 :(得分:3)
只需在static
课程之前使用Scanner
关键字。
示例:
static Scanner scan=new Scanner(System.in);
通过使用扫描对象,我们在代码中的任何地方引用
答案 2 :(得分:2)
我在解决静态初始化程序块问题时遇到了类似的疑问。并且有一个简单的解决方案。
写为:
static Scanner input = new Scanner(System.in);
而不是:
Scanner input = new Scanner(System.in);