LocalDateTime无法解析为变量

时间:2016-02-25 13:25:02

标签: java variables

只想在" 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;

事实证明,日食说:"结束不能解决为变种" 相同的代码结束我有开始,所以同样的错误。 我不知道这个问题。

2 个答案:

答案 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变量的位置。这也会给你同样的错误。