0

DataBinderを使用してループ内にいくつかのオブジェクトを作成しています。毎回作成するのではなく、DataBinderオブジェクトを再利用できるのではないかと思います。

出来ますか?

今私が持っています:

while (condition) {
    obj = new MyObj();
    DataBinder db = new DataBinder(obj,"my obj");
    db.registerCustomEditor(Date.class, new CustomDateEditor(new SimpleDateFormat(dateFormatParam), false));
    // set up binder with some editors etc.
    objectvalues = getValues();
    MutablePropertyValues mpv = new MutablePropertyValues();
    for (int i=0;i<fieldNames.length;i++){
        mpv.add(StringUtils.trim(fieldNames[i]), objectvalues[i]);
    }
    db.bind(mpv);
    // do something with obj...
}

欲しいです(これは想像力だけです...):

obj = new MyObj();
DataBinder db = new DataBinder(obj,"my obj");
db.registerCustomEditor(Date.class, new CustomDateEditor(new SimpleDateFormat(dateFormatParam), false));
// set up binder with some editors etc.
MutablePropertyValues mpv = new MutablePropertyValues();
for (int i=0;i<fieldNames.length;i++){
    mpv.add(StringUtils.trim(fieldNames[i]), "empty value");
}
while (condition) {
    objectvalues = getValues();
    for (int i=0;i<fieldNames.length;i++){
        mpv.setPropertyValueAt(objectvalues[i], i);
    }
    db.bind(mpv);
    objCopy = obj.clone();
    // do something with objCopy...
}

記憶と時間を無駄にしないために、そのようにするための安全な方法はありますか?

4

1 に答える 1

1

いいえ、のターゲットオブジェクトDataBinderは最終的なものです。別のオブジェクトにバインドする場合は、そのオブジェクトの新しいオブジェクトを作成する必要がありますDataBinder

于 2013-02-12T13:24:27.167 に答える