How do I read indexed bean's property value?

Bookmark this example!  
Category: Commons BeanUtils, viewed: 842 time(s).

In this example you'll see how to read an indexed property of an object such as List or array. Using the PropertyUtils.getIndexedProperty() method we can do it easily. This method take the bean and the name of indexed property including the element to be read. Let's see the example below for more details.

 
package org.kodejava.example.commons.beanutils;
 
import java.util.ArrayList;
import java.util.List;
import org.apache.commons.beanutils.PropertyUtils;
 
public class ReadIndexedProperty {
    public static void main(String[] args) {
        Recording recording = new Recording();
        recording.setId(1);
        recording.setTitle("With The Beatles");
        
        List tracks = new ArrayList();
        Track track1 = new Track();
        track1.setTitle("It Won't Be Long");
        
        Track track2 = new Track();
        track2.setTitle("All I've Got To Do");
 
        Track track3 = new Track();
        track3.setTitle("All My Loving");
        
        tracks.add(track1);
        tracks.add(track2);
        tracks.add(track3);
        
        recording.setTracks(tracks);
        
        try {
            Track trackOne = (Track) PropertyUtils.getIndexedProperty(recording, "tracks[0]");
            Track trackThree = (Track) PropertyUtils.getIndexedProperty(recording, "tracks[2]");
            
            System.out.println("trackOne.getTitle() = " + trackOne.getTitle());
            System.out.println("trackThree.getTitle() = " + trackThree.getTitle());
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
 
package org.kodejava.example.commons.beanutils;
 
import java.util.ArrayList;
import java.util.List;
 
public class Recording {
    private Integer id;
    private String title;
    private List tracks = new ArrayList();
 
    public Integer getId() {
        return id;
    }
 
    public void setId(Integer id) {
        this.id = id;
    }
 
    public String getTitle() {
        return title;
    }
 
    public void setTitle(String title) {
        this.title = title;
    }
 
    public List getTracks() {
        return tracks;
    }
 
    public void setTracks(List tracks) {
        this.tracks = tracks;
    }       
}
 
 

Our program results are:

trackOne.getTitle() = It Won't Be Long
trackThree.getTitle() = All My Loving
Can't find what you are looking for? Join our FORUMS and ask some questions!
Firefox 2
Google

100 Top & Latest

GetJava Download Button

Locations of visitors to this page
eXTReMe Tracker
visitor stats