只想在" Performer-object"中添加所有变量然后将其添加到列表中。所以我有班级"表演者"如果我想初始化一个对象就像:
Performer a = new Performer("Red Hot Chili Peppers", Kind.Punk, LocalDateTime.of(2015, 07, 17, 14, 00), LocalDateTime.of(2015, 07, 17, 16, 00) , Stage.MainStage)
还有一个带有零件的方法addBand:
System.out.println("End:");
sc.nextLine();
sc.findInLine("(\\d\\d)\\.(\\d\\d)\\. (\\d\\d):(\\d\\d)");
try{
MatchResult mr =sc.match();
int month = Integer.parseInt(mr.group(2));
int day = Integer.parseInt(mr.group(1));
int hour = Integer.parseInt(mr.group(3));
int minute = Integer.parseInt(mr.group(4));
LocalDateTime end = LocalDateTime.of(year, month, day, hour, minute);
//System.out.println(end);
} catch (IllegalStateException e)
{
System.err.println("Invalid input!");
}
Performer performer = new Performer(bandname, kind, start, end , stage);
listperformer.add(performer);
return listperformer;
事实证明,日食说:"结束不能解决为变种" 相同的代码结束我有开始,所以同样的错误。 我不知道这个问题。
答案 0 :(得分:1)
结束变量在try块内声明,因此不能在try块之外使用。
在try块之外声明它并在try块中初始化它。
LocalDateTime end = null;
try{
MatchResult mr =sc.match();
int month = Integer.parseInt(mr.group(2));
int day = Integer.parseInt(mr.group(1));
int hour = Integer.parseInt(mr.group(3));
int minute = Integer.parseInt(mr.group(4));
end = LocalDateTime.of(year, month, day, hour, minute);
//System.out.println(end);
} catch (IllegalStateException e){
System.err.println("Invalid input!");
}
Performer performer = new Performer(bandname, kind, start, end , stage);
listperformer.add(performer);
return listperformer;
答案 1 :(得分:0)
您在end
块中声明try
变量,但是您可以在块外部访问它。这会给您一个无法解析end
变量的错误。
另一件事是,我也没有看到你定义year
变量的位置。这也会给你同样的错误。