Мне нужна ваша помощь в изменении значения переменной boolean
на основе доступных значений в списке. Я определил класс под названием Student
:Как изменить значение переменной на основе доступных значений в списке
public class Student {
private Integer id;//Getter and Setter
private String name;//Getter and Setter
private String location;//Getter and Setter
private String remarks;//Getter and Setter
private boolean disable;//Getter and Setter
public Student(Integer id, String name, String location, String remarks, boolean disable){
this.id = id;
this.name = name;
this.location = location;
this.remarks=remarks;
this.disable=disable;
}
По умолчанию в компоненте, значение Disable верно. В программе у меня есть два списка: employeeList
и selectedEmployees
. employeeList
имеет значение и selectedEmployees
список имеет выбранные значения:
private List<Student> employeeList = new ArrayList<Student>();
private List<Student> selectedEmployees;
private boolean disable;
@PostConstruct
public void init() {
//add Employees
disable=true;
Student w1 = new Student(111, "AAAA", "ZZZZ", "", disable);
Student w2 = new Student(222, "CCCCC", "ZZZZZ", "OUT", disable);
Student w3 = new Student(333, "BBBBBB", "YYYYYYY", "IN", disable);
employeeList.add(w1);
employeeList.add(w2);
employeeList.add(w3);
}
Однако, я имею метод, который называется EnableInputText
, который будет вызван, чтобы проверить, если какое-либо из указанных выше значений в selectedEmployees
списке, то он должен изменить значение переменной disable
в false
:
public void EnableInputText(SelectEvent event) {
for(int i=0;i<=selectedEmployees.size();i++){
for(int j=0;j<=employeeList.size();j++){
if(selectedEmployees.get(i).getId().equals(employeeList.get(j).getId()))
{
selectedEmployees.get(j).setDisable(false);
break;
}
}
}
}
Но приведенный выше код, я получаю сообщение об ошибке:
java.lang.IndexOutOfBoundsException: Index: 3, Size: 3 at java.util.ArrayList.RangeCheck(ArrayList.java:547) at java.util.ArrayList.get(ArrayList.java:322)
Измените '<=' в '<' в условиях цикла. Если размер вашего списка равен «3», единственными правовыми индексами, которые вы можете получить, являются '0',' 1' и '2'. – azurefrog
Если вы используете для каждого стиля циклы типа 'for (Student student: list)', у вас никогда не будет такой проблемы. – Radiodef
@azurefrog Да Вы правы – 99maas