每次我尝试在其中执行一行代码时,我都会收到此错误:“无法对非静态字段进行静态引用”.nextInt()
。
以下是可能影响(我能想到的)的代码行:
private Scanner input = new Scanner(System.in);
int priceLocation = input.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
您需要制作您的input
asstatic
或将其移动到static
( main ) 方法中。
解决方案1:将input
as 设为static
.
private static Scanner input = new Scanner(System.in);
public static void main(String[] args) {
int priceLocation = input.nextInt();
解决方案2:移动input
main 内部(请注意,如果它移动到内部,则不能input
在任何其他方法中使用main()
,因为它将是本地的)。
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();
}
}