2016-10-07 5 views
0

В моем классе модели у меня есть частное поле типа ArrayList, когда я пытаюсь получить ArrayList с помощью BeanUtils, он не может сказать, что такого метода не может быть, объяснить, почему это происходит?Получите объект arraylist из класса модели, используя commons BeanUtils

Код выглядит следующим образом:

public class ApplicationListDTO implements DTO { 

    private Integer count = null;  
    private String next = null;  
    private String previous = null;  
    private List<ApplicationInfoDTO> list = new ArrayList<ApplicationInfoDTO>(); 
    private long lastUpdatedTime = 0L; 
    private long createdTime = 0L; 

    /** 
    * gets and sets the lastUpdatedTime for ApplicationListDTO 
    **/ 
    @org.codehaus.jackson.annotate.JsonIgnore 
    public long getLastUpdatedTime(){ 
    return lastUpdatedTime; 
    } 
    public void setLastUpdatedTime(long lastUpdatedTime){ 
    this.lastUpdatedTime=lastUpdatedTime; 
    } 

    /** 
    * gets and sets the createdTime for a ApplicationListDTO 
    **/ 

    @org.codehaus.jackson.annotate.JsonIgnore 
    public long getCreatedTime(){ 
    return createdTime; 
    } 
    public void setCreatedTime(long createdTime){ 
    this.createdTime=createdTime; 
    } 

    /** 
    * Number of applications returned.\n 
    **/ 
    @ApiModelProperty(value = "Number of applications returned.\n") 
    @JsonProperty("count") 
    public Integer getCount() { 
    return count; 
    } 
    public void setCount(Integer count) { 
    this.count = count; 
    } 

    /** 
    * Link to the next subset of resources qualified.\nEmpty if no more resources are to be returned.\n 
    **/ 
    @ApiModelProperty(value = "Link to the next subset of resources qualified.\nEmpty if no more resources are to be returned.\n") 
    @JsonProperty("next") 
    public String getNext() { 
    return next; 
    } 
    public void setNext(String next) { 
    this.next = next; 
    } 

    /** 
    * Link to the previous subset of resources qualified.\nEmpty if current subset is the first subset returned.\n 
    **/ 
    @ApiModelProperty(value = "Link to the previous subset of resources qualified.\nEmpty if current subset is the first subset returned.\n") 
    @JsonProperty("previous") 
    public String getPrevious() { 
    return previous; 
    } 
    public void setPrevious(String previous) { 
    this.previous = previous; 
    } 

    /** 
    **/ 
    @ApiModelProperty(value = "") 
    @JsonProperty("list") 
    public List<ApplicationInfoDTO> getList() { 
    return list; 
    } 
    public void setList(List<ApplicationInfoDTO> list) { 
    this.list = list; 
    } 
} 

и код для вызова метода заключается в следующем:

Object object = ((ResponseImpl) message.getContent(List.class).get(0)).getEntity(); 
BeanUtils.getProperty(object,"list"); 

ответ

0

BeanUtils.getProperty(..)returns String, так что это не то, что вам нужно.

Вы можете сделать это без какой-либо библиотеки поддержки:

try { 
    Object object = ((ResponseImpl) message.getContent(List.class).get(0)).getEntity(); 
    Field field = object.getClass().getDeclaredField("list"); 

    List<Object> list = field.get(object); 

    [...] 
} catch (Exception e) { 
    e.printStackTrace(); 
} 

Или вы можете сделать это с FieldUtils от Apache Commons Lang library. Вот пример: