java - 使用 .nextInt() 时出现错误

标签 java java.util.scanner

每次我尝试执行包含 .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

您需要将您的输入设置为static,或者将其移动到static内(main )方法。

解决方案1:输入设为静态

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

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

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

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

关于java - 使用 .nextInt() 时出现错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19947636/

相关文章:

java - Jooq 使用软删除查询表

java - Hibernate Criteria 通过获取错误进行分组

java - 当我将扫描仪的输入读入 ArrayList 时,为什么会出现 NullPointerException?

java - 无法在方法内关闭扫描仪?非静态方法Close()

java - 十六进制到十进制的读写?

java - 扫描仪在使用 next() 或 nextFoo() 后跳过 nextLine()?

java - 如何获取具有多个泛型类型的类型来匹配类型参数?

java - Weka Example,文本行的简单分类

java - 批处理文件如何在调用其他函数之前先等待Java应用程序完成运行

java - 使用行、列和字符的输入创建形状以填充形状时出现问题