菜单类错误-Java 更新
以下错误已解决,但输入作者后,我将显示此消息: " " 这有什么原因吗菜单类错误-Java 更新,java,methods,Java,Methods,以下错误已解决,但输入作者后,我将显示此消息: " " 这有什么原因吗 我是java新手,被指派完成以下任务: 我已经完成了这些任务,几乎快结束了,但是我认为我的菜单类出现了错误,这使它无法运行。以下是我正在使用的4个不同的类: 手工课: 控制台类: 图书馆类别: 菜单类: package manualLibrary; public class Menu { public static void main(String[] args) { // I
我是java新手,被指派完成以下任务: 我已经完成了这些任务,几乎快结束了,但是我认为我的菜单类出现了错误,这使它无法运行。以下是我正在使用的4个不同的类: 手工课: 控制台类: 图书馆类别: 菜单类:
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抛出的错误:
"
"
谢谢大家! 这个错误是不言自明的,但是如果你不能理解它,下面是 1.)您尝试使用
字符串
参数调用方法Console.askOption()
,但是不存在这样的方法-您需要定义它。但是,看起来您需要Console.askChar()
2.)您尝试在Manual
实例上使用String
参数调用方法ask()
,但您定义的方法没有参数。使用普通的one.ask()而是code>,或者它看起来像您想要的one.print(“输入手动详细信息:”)代码>
3.)尝试在案例“F”:
下分配未声明的变量manual
,这可能是manual=new manual()代码>而不是手动=新手动()代码>
4.)您尝试在库
实例上使用手动
参数调用方法addManual()
(不存在此类方法)-看起来您需要手册。添加(一个)代码>
5.)您尝试在库
实例上使用字符串
参数调用方法print
(不存在此类方法)-看起来您需要manuals.print()代码>
我想就是这样。“我想我的菜单类存在错误,这会阻止它运行”是否有任何错误/异常消息?请包括它们。此外,我建议您调试代码(许多IDE都有调试工具,如逐步执行),以跟踪问题所在。这是您的家庭作业吗?你试过什么吗?怎么了?它说类型控制台的方法askOption(String)未定义。您在这里使用它:option=Console.askOption(“选择:A)dd,P)rint,Q)uit”)代码>但是您的控制台类没有定义askOption
。它有一个askChar
,似乎就是您想要使用的
如果您没有声明它是什么类型(例如Manual Manual=new Manual();
)@user1071777哇,非常感谢您的反馈,我已经应用了您的更改,它运行得很好!只有一个问题,当我在输入author后按enter键时,我得到一个错误声明:线程“main”java.lang.NullPointerException中的异常-在manualLibrary.Library.add(Library.java:21)-在manualLibrary.Menu.main(Menu.java:25)
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!");
}
}
}
}
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)