我刚学会了如何使用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]);
答案 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 {
...
}
我希望它对某人有用。