更新
以下错误已得到解决,但是在输入作者后,我会显示以下消息:
"
Exception in thread "main" java.lang.NullPointerException
at manualLibrary.Library.add(Library.java:21)
at manualLibrary.Menu.main(Menu.java:25)
” 发生这种情况有什么原因吗?
<小时/>我是 java 新手,已被分配一些任务来完成,如下所示:
我一直在完成这些任务,并且几乎已经完成,但是我认为我的 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/