2016-01-13 58 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"); 

数组大小的运行时

期间不会增加