Java "exception in thread "main"" 错误修复
Java "exception in thread "main"" error fix
目前我正在开发一个应用程序,它允许将技术手册添加、存储、借用,returned 到虚拟图书馆。
目前我正在开发允许用户 return 他们以前借过的书的部分。当他们在主菜单中输入“4”时,将显示当前借用手册的列表。
我已经设法显示借来的手册,但我也遇到了一个错误,导致我的 java 应用程序退出,如下所示:
这里是这个应用程序的相关代码(如果我需要显示更多请告诉我):
static void returnManual(){
System.out.printf("\n\nHere are the Manual/s currently out on loan:\n\n");
if(ManualList.get(ManualChoice).status.equalsIgnoreCase(status2) && borrowedManuals.size() >= ManualChoice){
for (int i = 0; i < borrowedManuals.size(); i++)
System.out.println(borrowedManuals.get(i).displayManual());
returnManualTitle = Console.readString(Messages.enterManualTitle, Messages.tooShortMessage, 3);
}
如果有人知道如何解决这个错误,请告诉我:) 我是 Java 的新手!
更新
我应用了评论中克里斯托弗斯的建议,将 ManualList.size() 更改为 borrowedManuals.size()。
现在的问题是,如果用户借了 2 本手册并希望 return 第二本手册,一旦他们输入他们希望[的(第二本)手册的标题名称,他们的标题条目就不会被激活 return。如果输入了第一个手册标题,应用程序将按预期运行并且 return 将手册发送到图书馆。
下面是一个例子。我还更新了我的代码(以上)以包含所做的更改。
if(null != ManualList && ManualList.size() >= ManualChoice &&
ManualList.get(ManualChoice).status.equalsIgnoreCase(status2) ){
for (int i = 0; i < ManualList.size(); i++)
if(borrowedManuals.size() > i) // check borrowedManuals size its better to check this in if where you check for ManualList
System.out.println(borrowedManuals.get(i).displayManual());
returnManualTitle = Console.readString(Messages.enterManualTitle, Messages.tooShortMessage, 3);
}
}
首先检查 ManualList
不是 null
然后检查 ManualList.size() >= ManualChoice
ManualList
大小是否大于 ManualChoice
然后从该索引中获取值以便它会不给你IndexOutOfBoundException
目前我正在开发一个应用程序,它允许将技术手册添加、存储、借用,returned 到虚拟图书馆。
目前我正在开发允许用户 return 他们以前借过的书的部分。当他们在主菜单中输入“4”时,将显示当前借用手册的列表。
我已经设法显示借来的手册,但我也遇到了一个错误,导致我的 java 应用程序退出,如下所示:
这里是这个应用程序的相关代码(如果我需要显示更多请告诉我):
static void returnManual(){
System.out.printf("\n\nHere are the Manual/s currently out on loan:\n\n");
if(ManualList.get(ManualChoice).status.equalsIgnoreCase(status2) && borrowedManuals.size() >= ManualChoice){
for (int i = 0; i < borrowedManuals.size(); i++)
System.out.println(borrowedManuals.get(i).displayManual());
returnManualTitle = Console.readString(Messages.enterManualTitle, Messages.tooShortMessage, 3);
}
如果有人知道如何解决这个错误,请告诉我:) 我是 Java 的新手!
更新
我应用了评论中克里斯托弗斯的建议,将 ManualList.size() 更改为 borrowedManuals.size()。
现在的问题是,如果用户借了 2 本手册并希望 return 第二本手册,一旦他们输入他们希望[的(第二本)手册的标题名称,他们的标题条目就不会被激活 return。如果输入了第一个手册标题,应用程序将按预期运行并且 return 将手册发送到图书馆。
下面是一个例子。我还更新了我的代码(以上)以包含所做的更改。
if(null != ManualList && ManualList.size() >= ManualChoice &&
ManualList.get(ManualChoice).status.equalsIgnoreCase(status2) ){
for (int i = 0; i < ManualList.size(); i++)
if(borrowedManuals.size() > i) // check borrowedManuals size its better to check this in if where you check for ManualList
System.out.println(borrowedManuals.get(i).displayManual());
returnManualTitle = Console.readString(Messages.enterManualTitle, Messages.tooShortMessage, 3);
}
}
首先检查 ManualList
不是 null
然后检查 ManualList.size() >= ManualChoice
ManualList
大小是否大于 ManualChoice
然后从该索引中获取值以便它会不给你IndexOutOfBoundException