繁体   English   中英

使用.nextInt()时出错

[英]Getting error while using .nextInt()

我收到此错误: 每次我尝试使用.nextInt()执行一行代码时, ”无法对非静态字段进行静态引用“

以下是可能影响的代码行(我能想到):

private Scanner input = new Scanner(System.in);
int priceLocation = input.nextInt();

这很可能是因为你试图在静态方法中访问input ,我假设它是main()方法。 像这样的东西

private Scanner input = new Scanner(System.in);

public static void main(String[] args) {
    int priceLocation = input.nextInt(); // This is not allowed as input is not static

您需要将inputstatic或者可以将其移动到static )方法中。

解决方案1:input设为static

private static Scanner input = new Scanner(System.in);

public static void main(String[] args) {
    int priceLocation = input.nextInt();

解决方案2:input移动到main中(注意,如果它在main()移动,则不能在任何其他方法中使用input ,因为它将是本地的)。

public static void main(String[] args) {
    Scanner input = new Scanner(System.in);
    int priceLocation = input.nextInt();
private Scanner input = new Scanner(System.in); // make this static 

如果您在静态方法中访问此内容。 你必须使input静态。

private static Scanner input = new Scanner(System.in);
public static void main(String[] args) {
    int priceLocation = input.nextInt();
   // without static you will get that error.
}

这是因为您定义输入的方式

private Scanner input = new Scanner(System.in); // notice private
int priceLocation = input.nextInt();

私有变量在类中定义,外部方法如

class myclass{

    private Scanner input = new Scanner(System.in);
    void methodname(){
        int priceLocation = input.nextInt();
    } 
}

或者,如果要在方法内定义输入

class myclass{
    void methodname(){
        Scanner input = new Scanner(System.in); // you can make this a final variable if you want
        int priceLocation = input.nextInt();
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM