コード行を実行しようとするたびに、「非静的フィールドへの静的参照を作成できません」というエラーが表示.nextInt()
されます。
影響する可能性のあるコード行は次のとおりです(私が考えることができます):
private Scanner input = new Scanner(System.in);
int priceLocation = input.nextInt();
コード行を実行しようとするたびに、「非静的フィールドへの静的参照を作成できません」というエラーが表示.nextInt()
されます。
影響する可能性のあるコード行は次のとおりです(私が考えることができます):
private Scanner input = new Scanner(System.in);
int priceLocation = input.nextInt();
これは、入力を定義する方法が原因です
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();
}
}
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.
}