调试器在无法编译的源代码上停止。

时间:2014-11-17 22:20:12

标签: java arrays if-statement

我刚学会了如何使用Arrays,我在Netbeans上用Java编写了这个程序。它编译时没有错误,但给了我一个空白输出我的if是真的,但当它跳到else时输出没问题

这是我的JAVA CLASS

public class VacationScale {

   public int[] vacationDays;
   public int yearsOfService;

   public void setVacationScale(){
       vacationDays = new int[7];
       vacationDays[0] = 10;
       vacationDays[1] = 15;
       vacationDays[2] = 15;
       vacationDays[3] = 15;
       vacationDays[4] = 20;
       vacationDays[5] = 20;
       vacationDays[6] = 25;       
   }

   public void displayVacationDays(){
       if (yearsOfService >= 0){
           System.out.println("Vacation days: " + vacationDays[yearsOfService]);
       }else {
           System.out.println("invalid number of years");
       }

   }

} 

这是我的主要课程(测试)

public class VacationScaleTest {

    public static void main(String[] args) {
        VacationScale personOne;
        personOne = new VacationScale();

        personOne.yearsOfService = 2;
        personOne.displayVacationDays();
    }

}

同时在同一个项目中

我尝试调试并在调试器停止在无法编译的源代码System.out.println("Vacation days: " + vacationDays[yearsOfService]);

2 个答案:

答案 0 :(得分:0)

那是因为你仍然没有在调用displayVacationDays()时设置数组vacationDays []。

执行以下操作 - 在拥有personOne.displayVacationDays()的行之前添加此行,

personOne.setVacationScale();
// Now make the call to display vacation days

答案 1 :(得分:0)

我在完全不同的星座中收到了相同的错误消息。

我正在使用java fx

我用Google搜索,发现没有类似的情况。经过一些测试,我发现在创建一个新的PropertyValueFactory时,我收到了这个紧张的错误消息。

导致问题的代码行是:

            TableColumn<Values, String> col = new TableColumn<>(val.getName());

            col.setCellValueFactory(
                new PropertyValueFactory<Values,String>("Value")
            );

类Values是一个子类,如下所示:

private class Values {
    private final SimpleStringProperty vall;
    public Values(String d) {
        this.vall = new SimpleStringProperty(d);
    }

    public String getValue() {
        return vall.get();
    }

    public void setValue(String value) {
        vall.set(value);
    }
}

<强>解决方案: 经过大量的检查,我发现我的Values类必须是PUBLIC而不是私有。

 public class Values {
...
}

我希望它对某人有用。