java - 菜单类错误 - Java

标签 java methods

更新

以下错误已得到解决,但是在输入作者后,我会显示以下消息:

"

Exception in thread "main" java.lang.NullPointerException

at manualLibrary.Library.add(Library.java:21)

at manualLibrary.Menu.main(Menu.java:25)

” 发生这种情况有什么原因吗?

<小时/>

我是 java 新手,已被分配一些任务来完成,如下所示:

enter image description here

我一直在完成这些任务,并且几乎已经完成,但是我认为我的 Menu 类存在错误,导致其无法运行。以下是我正在使用的 4 个不同的类:

手工课: http://pastebin.com/z31QBKf9

控制台类: http://pastebin.com/B4XFZESF

库类: http://pastebin.com/Gx25iDwA

菜单类别:

package manualLibrary;

public class Menu 
{
    public static void main(String[] args) 
    {
        // Initialise container
        //Manuals manuals = new Manuals();
        Library manuals = new Library();
        // declare boolean for while loop
        boolean finished = false;
        char option;
        // while loop
        while(! finished)
        {
            // ask option using menu choices
            option = Console.askOption("Select: A)dd, P)rint, Q)uit");
            // implement switch option
            switch (option)
            {
            // implement cases
            // add
            case 'A':
                Manual one = new Manual();
                one.ask("Enter manual details: ");
                manuals.addManual(one);
                break;
            // find 
            case 'F':
                manual = new Manual();
                String manualserialNumber = manual.askserialNumber("\nEnter the serial number for the manual: ");
                if ( manuals.find( manualserialNumber) != null)
                    System.out.println("Manual found is: " +manuals.find(manualserialNumber));
                else
                    System.out.println("Error: Manual not found! \n");
                break;
            // print
            case 'P':
                manuals.print("Stored manuals are: ");
                break;
            // quit menu case
            case 'Q':
                finished = true;
                System.out.println("End of application, goodbye!");
                break;
            // default case
            case '\0':
                break;
            default:
                System.out.println("Invalid entry!");
            }
        }
    }
}

如果有人对如何修复存在的错误有任何想法,请帮忙,我一直在努力解决这个问题,并且很想让我的代码正常运行。

编辑

以下是 eclipse 抛出的错误:

"

Exception in thread "main" java.lang.Error: Unresolved compilation problems: 

The method askOption(String) is undefined for the type Console

The method ask() in the type Manual is not applicable for the arguments (String)

The method addManual(Manual) is undefined for the type Library

manual cannot be resolved to a variable

manual cannot be resolved

at manualLibrary.Menu.main(Menu.java:17)

"

谢谢!

最佳答案

这个错误是不言自明的,但如果你无法理解它,这里是......

1.) 您尝试使用 String 参数调用方法 Console.askOption(),但是不存在这样的方法 - 您需要定义它。但是,您似乎想要 Console.askChar()

2.) 您尝试在 Manual 实例上使用 String 参数调用方法 ask(),但您定义的方法没有参数。使用普通的 one.ask(); 来代替,或者看起来你需要 one.print("输入手动详细信息:");

3.) 您尝试在 case 'F': 下分配未声明的变量 manual,这可能应该是 Manual manual = new Manual() ; 而不是 manual = new Manual();

4.) 您尝试在 Library 实例上使用 Manual 参数调用方法 addManual()(不存在此类方法) - 看起来你想要 manuals.add(one);

5.) 您尝试在 Library 实例上使用 String 参数调用方法 print(不存在此类方法) - 它看起来你想要 manuals.print();

我想就是这样。

关于java - 菜单类错误 - Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26639734/

相关文章:

Java 重用(静态?)对象作为临时对象以提高性能

java - Java 中标签和单选组之间不需要的线

c# - 如何使方法在类中调用另一个方法?

java - 另一个与 main 方法中的变量交互的类

objective-c - 如何从 Objective-C 调用使用 class_getInstanceMethod 保存的方法?

android - 从 AsyncTask 调用 UI 线程方法

java - 使用 Http-request 在单个请求中获取响应代码和响应正文

java - 双引号内的内容不会打印到 System.out

java - android应用未执行

java - 为什么需要使用 'this' 关键字?