首页 > 解决方案 > 行号错误 = inputLine.nextInt();

问题描述

我有一个问题,因为它说 int 不能被取消引用!

public class EducationalQuiz1{
    public static void main(String args[]){

        int number;
        int inputLine;

        System.out.println("Select Topic:");
        System.out.println("1. Handball");
        System.out.println("2. Football");
        System.out.println("3. Basketball");
        System.out.println("4. Wrestling");
        String sport = Keyboard.readString();

        switch(sport){
            case "1":
                handball myhandball = new handball();
                myhandball.printMenu();break;
            case "2":
                football myfootball = new football();
                myfootball.printMenu();break;
            case "3":
                basketball mybasketball = new basketball();
                mybasketball.printMenu();break;
            case "4":
                wrestling mywrestling = new wrestling();
                mywrestling.printMenu();break;
            number = inputLine.nextInt();
            if (number < 0)
                System.out.println("Does not compute! Enter a positive number!");
            while (number < 0);
        }
    }
}

标签: java

解决方案


什么是取消引用?

从技术上讲,任何不是原始类型的变量都包含对对象的 引用,而不是实际对象本身。当您使用“。”时 运算符访问对象的成员时,您正在“取消引用”该引用。

inputLine.nextInt();

inputLine是原始类型 int 你不能用它调用方法,因为它不包含任何引用,所以你得到一个错误int can't be derefrenced

你应该做一些类似的事情。使用scanner类接受int输入

Scanner scanner = new Scanner(System.in);

java.util.Scanner 类的 nextInt(radix) 方法将输入的下一个标记扫描为 Int

 scanner.nextInt();

推荐阅读