変数はディメンション式または配列イニシャライザエラーのいずれかを指定する必要があります

テスト目的のために、私は変数をデータベースに渡すことができるように、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; }

これを行うには良い方法はありますか?

0

1 答え

閉じる!これを試して:

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

このコードでは、三項構文を使用して、条件に応じて代替の初期化子を使用します。

1
追加された
DetFilterCriteriaBean [] filters = form.getWySelect() ...どうすればフォームバリエーションが増えますか?どのように私がハードコード化したかのような3つの異なるものを好む
追加された 著者 Doc Holiday,