如何使扫描仪对象为静态

Rus*_*kar 3 java static global-variables object java.util.scanner

我如何引用从静态方法(例如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();
    }
}
Run Code Online (Sandbox Code Playgroud)

错误:无法从静态内容引用非静态变量输入

Ell*_*sch 5

如果我理解您的问题,那么您可以更改此

Scanner input = new Scanner(System.in);
Run Code Online (Sandbox Code Playgroud)

到(所有其他班级都可见-您在全球范围内说过)

public static Scanner input = new Scanner(System.in);
Run Code Online (Sandbox Code Playgroud)

或(当前类可见-即main()

private static Scanner input = new Scanner(System.in);
Run Code Online (Sandbox Code Playgroud)


adi*_*ade 5

在解决静态初始化程序块的问题时,我也遇到过类似的疑问。并且有一个简单的解决方案。

写成:

static Scanner input = new Scanner(System.in);
Run Code Online (Sandbox Code Playgroud)

代替 :

Scanner input = new Scanner(System.in);
Run Code Online (Sandbox Code Playgroud)