0

20としましょう固定サイズの配列を取得しています。

各配列要素を Bean プロパティに設定する必要があるため、Bean には 20 個のプロパティがあります。

これが私の現在のアプローチです:

Object[] record = { "0", "1", "2", ...."19" };

for (int j = 0; j < record.length; j++) {
    if (j == 0) {
        bean.setNo((String) record[j]);
    }
    if (j == 1) {
        bean.setName((String) record[j]);  
    }
    if (j == 2) {
        bean.setPhone((String) record[j]);  
    }
    // so on and so forth...
}

これは、配列から Bean のすべてのプロパティを設定する方法です。

ここでは、配列に20個の要素があります。

したがって、20 番目の要素を設定するには、20 の条件をチェックしています..パフォーマンスの問題..

最適化された技術は高く評価されます...

前もって感謝します...

4

3 に答える 3

2

Bean 値を設定する別の方法。これには、依存関係として commons-beanutils.jar が必要です。

import java.lang.reflect.InvocationTargetException;

import org.apache.commons.beanutils.BeanUtils;

public class BeanUtilsTest {

    // bean property names
    private static String[] propertyNames = { "name", "address" };

    public static void main(String[] args) throws IllegalAccessException,
            InvocationTargetException {
        // actual values u want to set
        String[] values = { "Sree", "India" };
        MyBean bean = new MyBean();
        System.out.println("Bean before Setting: " + bean);

        // code for setting values
        for (int i = 0; i < propertyNames.length; i++) {
            BeanUtils.setProperty(bean, propertyNames[i], values[i]);
        }
        // end code for setting values
        System.out.println("Bean after Setting: " + bean);
    }

    public static class MyBean {
        private String name;
        private String address;
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public String getAddress() {
            return address;
        }
        public void setAddress(String address) {
            this.address = address;
        }
        @Override
        public String toString() {
            return "MyBean [address=" + address + ", name=" + name + "]";
        }


    }
}
于 2012-11-16T06:14:03.083 に答える
2

これを行う1つの方法は次のとおりです。

これを試して::

     Object[] record = BeanList.get(i);
     int j = 0;
     bean.setNo((String) record[j++]);
     bean.setName((String) record[j++]);  
     bean.setPhone((String) record[j++]);

………………………………

于 2012-11-16T06:04:02.663 に答える
-1

U は、これらの if ステートメントの代わりに Switch を使用できます

for( int j =0; j < record.length; j++) {
     switch (j){
           case 1 :  bean.setNo((String) record[j]);break;
           case 2 :  bean.setNo((String) record[j]);break;
           ....
           ....
    }
}
于 2012-11-16T05:52:43.857 に答える