2012-02-06 25 views
0

爲了測試目的,我硬編碼了一個bean數組,以便我可以將變量傳遞給數據庫。我現在從表單中提取變量,並且如果它們不爲null,則希望在bean數組中設置它們。我認爲我的語法錯了。變量必須提供任何維度表達式或數組初始化器錯誤

硬編碼:

CriteriaBean[] filters = new CriteriaBean[] 
{ 
    new CriteriaBean("YEAR","=","2012"), 
    new CriteriaBean("LOCATION","in","('XXX','YYY')"), 
    new CriteriaBean("TOM","is","not null") 
}; 

我試圖做這樣的事情,並得到了錯誤:

CriteriaBean[] filters = new CriteriaBean[] 
      { 
      if (form.getYear() != null) 
      { 
      new CriteriaBean("YEAR","=","2012") 
      } 


      }; 

CriteriaBean

public class CriteriaBean 
    { 
public static final CriteriaBean[] EMPTY_ARRAY = new CriteriaBean[0]; 

private String fieldName; 
private String value; 
private String operation; 

public CriteriaBean() { } 
public CriteriaBean(String field, 
           String op, 
           String val) 
{ 
    this.fieldName = field; 
    this.operation = op; 
    this.value = val; 
} 



public String getName() { return this.name; } 
public String getOp() { return this.op; } 
public String getVal() { return this.val; } 

public void setName(String val) { this.name = val; } 
public void setOp(String val) { this.op = val; } 
public void setVal(String val) { this.val = val; } 

有沒有更好的方式來做到這一點? ?

回答

1

關閉!嘗試:

CriteriaBean[] filters = form.getWySelect() == null 
    ? new CriteriaBean[] {} 
    : new CriteriaBean[] { 
     new CriteriaBean("WORKLOAD_YEAR","=","2012") 
     }; 

此代碼使用ternary語法使用根據條件備用初始值設定。

+0

我想我看看它在做什麼...''DetFilterCriteriaBean [] filters = form.getWySelect()'...如果我有更多的表單變量?像3個不同的像我硬編碼 – 2012-02-06 15:54:37

相關問題