2016-04-22 4 views
0

リスト内の使用可能な値に基づいてboolean変数の値を変更するには、助けが必要です。豆にデフォルトでリスト内の利用可能な値に基づいて変数の値を変更する方法

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; 
      } 

、無効の値がtrueである:私はStudentというクラスを定義しました。プログラムでは、私はemployeeListselectedEmployeesの2つのリストを持っています。 、

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); 

} 

しかし、私は上記の値のいずれかがselectedEmployeesリストにあるかどうかを確認するために呼び出されますEnableInputTextと呼ばれる方法を持っています:employeeListは値を持っており、selectedEmployeesリストは、選択された値を持っていますそれはfalsedisable変数の値を変更する必要があります。

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; 
    } 
    } 
} 

} 

しかし、上記のコードで、私はエラーを取得しています:

を10
+3

変更 '<=' < ''へあなたのループ条件インチあなたのリストのサイズが '3'の場合、アクセスできる唯一の有効なインデックスは' 0'、 '1'、' 2'です。 – azurefrog

+0

'for(Student student:list)'のようなfor-eachスタイルのループを使うと、この種の問題は起こりません。 – Radiodef

+0

@azurefrogはいいいえ – 99maas

答えて

0
selectedEmployees.get(j).setDisable(false); 

あなたは、その行にjの代わりにiを使用することを意味すると思いますか?

またはおそらくフリップ側:

employeeList.get(j).setDisable(false); 
+0

まだ同じエラー – 99maas

+0

コメントのazurefrogの答えを確認してください。それは正しい答えです – karina

関連する問題