2012-02-02 20 views
0

こんにちは私はSetをとるセッターに文字列配列を渡す必要があります。それを渡す方法がわからない。おかげセットに文字列配列を渡す必要があります

は、これが私のフォームです:メソッドはsetFields(:述べたメッセージを持っ

ParameterBean paramBean = new ParameterBean(); 
form.getFields() y 

     paramBean.setFields(Arrays.asList(form.getFields())); //Need bean set here 

public String[] getFields() { return fields; } 
public void setFields(String[] s) 
{ 
    fields = s; 
    //System.out.println("form Array length " + s.length); 
} 

、ここでは、Beanです:

private Set<FieldBean> fields; 

    public void setFields(Collection<FieldBean> val) 
{ 
    t 
    if(fields == null) fields = new HashSet<FieldBean>(); 
    fields.addAll(val); 
} 

アクションコードCollection)は、引数(List)には適用されません

+0

は、配列内の重複はありますか? –

+0

[this](http://stackoverflow.com/questions/3064423/java-easily-convert-array-to-set)スレッドを参照してください。 –

+0

@WebUser: 'addAll'は重複を無視します。 – SLaks

答えて

1
new HashSet<..>(Arrays.asList(array)); 

がセットになります。しかし、あなたはすでにaddAll(..)メソッドを持っているので、コレクションは、Arrays.asList(array)

Btwである必要があります。通常、セッターは値をとり、セットします。この種の論理を設定者に持たせることは、必ずしも良い考えではありません。だから、それを簡単なセッターにして、私の答えの最初の行を使うことができるかどうかを確認してください。 Guava

+0

「paramBean.setFields(Arrays.asList(form.getFields()));」を追加しました。 「DetParameterBean型のメソッドsetFields(Collection )は、引数(List )には適用されません」 –

+0

Setter型DetParameterBeanのセットが必要な場合、StringをDetParameterBeanに変換することはできません。 DetParameterBeanの内容は何ですか? – proko

+0

は元の投稿を更新しました –

0

:(。HashSetより速く、シンプル、そしてより少ないメモリ集約)それは設定のための要件であるため、

myMethod(ImmutableSet.copyOf(stringArray)); 

関連する問題