2016-01-13 57 views
0
public class TestBean { 
    private String[] array; 

    public String[] getArray() { 
     return array; 
    } 

    public void setArray(String[] array) { 
     this.array = array; 
    } 
} 

import java.lang.reflect.InvocationTargetException; 

import org.apache.commons.beanutils.BeanUtils; 

public class BeanUtilTest { 
    public static void main(String[] args) { 
     TestBean bean = new TestBean(); 
     try { 
      BeanUtils.setProperty(bean, "array[0]", "zero"); 
     } catch (IllegalAccessException | InvocationTargetException e) { 
      e.printStackTrace(); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
    } 
} 

運行代碼時以下異常越來越而運行時間爪哇 - 異常PropertyUtilsBean.setIndexedProperty

java.lang.NullPointerException 
at org.apache.commons.beanutils.PropertyUtilsBean.setIndexedProperty(PropertyUtilsBean.java:1414) 
at org.apache.commons.beanutils.BeanUtilsBean.setProperty(BeanUtilsBean.java:1016) 
at org.apache.commons.beanutils.BeanUtils.setProperty(BeanUtils.java:313) 
at BeanUtilTest.main(BeanUtilTest.java:10) 

數組大小會增加。所以我不想要一個固定大小的數組。數組大小應該在運行時定義。

回答

0

需要初始化所述陣列或使用

BeanUtils.setProperty(bean, "array", array); 

設置數組,然後使用以下的操作來設定該值

BeanUtils.setProperty(bean, "array[0]", "zero"); 

數組大小的運行時

期間不會增加