我的问题是: 当我试图调用方法newFile.createYear();来自菜单终端的开关打印错误:
def +[B1 >: B](elem1: (A, B1), elem2: (A, B1), elems: (A, B1)*): HashMap[A, B1]
Adds two or more elements to this collection and returns a new collection.
val result_tags = HashMap[String,Int]()
val result_tags_filled = result_tags + ("video"->0,"game"->0,"news"->0,"ee"->0,"sport"->0,
"shop"->0,"ju"->0,"story"->0,"pho"->0,"con"->0,"live"->0,"life"->0,"soft"->0,"hire"->0,"car"->0,
"mm"->0,"mus"->0,"mob"->0,"male"->0,"heal"->0, "sca"->0,"bank"->0,"mail"->0,"cool"->0,"pict"->0, "dl"->0)
当我在eclipse中运行程序时,问题不会发生。我在终端输入Exception in thread "main" java.lang.NullPointerException
at com.register.file.CreateFile.showYears(CreateFile.java:140)
at com.register.file.CreateFile.createYear(CreateFile.java:30)
at com.register.main.Menu.registers(Menu.java:30)
at com.register.main.Menu.menu(Menu.java:132)
at com.register.main.Main.main(Main.java:14)
来运行程序。
此外,当我在调用方法后尝试返回上一级菜单时(即使在Eclipse中):
来自switch的代码部分:
java com.register.main.Main
答案 0 :(得分:0)
检查方法CreateFile
中的班级showYears()
中是否存在“注册”目录:
File yearsDirs = new File("Registers");
if (!yearsDirs.exists()){ //Create "Registers" when it does not exists.
yearsDirs.mkdir();
}
File[] dirs = yearsDirs.listFiles();
for (File dir : dirs) {
if (dir.isDirectory()) {
System.out.print("Registers ");
} else {
System.out.print("Register ");
}
try {
System.out.println(dir.getName());
} catch (Exception e) {
System.out.println("Error.");
}
}
如果没有检查,则在调用.listFiles()时会出现NullPointerException,因为目录“Registers”不存在。 在Eclipse中,您可能在项目Register下有一个“Registers”目录。从终端呼叫时,你可能没有。
<小时/> 根据OP的评论:你可以编写一个循环:
public class Main {
public static void main(String[] args) {
Menu newMenu = new Menu();
boolean continuePlaying = newMenu.menu();
while (continuePlaying) {
continuePlaying = newMenu.menu();
}
}
}
将您的方法menu()
的返回类型更改为boolean
而不是void
。
Scanner
。我建议只使用一个。当您关闭Scanner
时,它看起来也会关闭其他的createYear()
。在课程CreateFile
中的方法reader.close()
中,您最后会调用NoSuchElementException
。当我删除该行时,上述循环完美无缺。当我按原样使用时,我会得到<ul>
<li *ngFor="let c of myHtmlItems" [innerHTML]='c.myHtml'></li>
</ul>
,就像你得到的那样。