2012-02-06 1 views
0

테스트 목적으로 데이터베이스에 변수를 전달할 수 있도록 빈 배열을 코딩했습니다. 지금은 양식에서 변수를 가져오고 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 가지 다른 것들을 좋아해. –