簡體   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