In this example you’ll see how to read bean’s nested property, we’ll use PropertyUtils.getNestedProperty()
method. To test we will create three classes, Track
and Artist
for our beans and ReadNestedProperty
as a main program to run.
The Track
class will contain a property of an Artist
object. Using the PropertyUtils.getNestedProperty()
method we want to get the artist name that sings the track. This method will first read the artist
property from the track
object and then read the name
property of the artist
object.
Reading nested property using PropertyUtils.getNestedProperty()
it can read nested level in no limit.
package org.kodejava.commons.beanutils;
import org.apache.commons.beanutils.PropertyUtils;
import org.kodejava.commons.beanutils.support.Artist;
import org.kodejava.commons.beanutils.support.Track;
public class ReadNestedProperty {
public static void main(String[] args) {
Track track = new Track();
track.setId(1L);
track.setTitle("Lucy In The Sky With Diamonds");
track.setArtist(new Artist(1L, "The Beatles"));
try {
String artistName = (String) PropertyUtils.getNestedProperty(track, "artist.name");
System.out.println("Artist Name = " + artistName);
} catch (Exception e) {
e.printStackTrace();
}
}
}
package org.kodejava.commons.beanutils.support;
public class Track {
private Long id;
private String title;
private Integer duration;
private Artist artist;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public Integer getDuration() {
return duration;
}
public void setDuration(Integer duration) {
this.duration = duration;
}
public Artist getArtist() {
return artist;
}
public void setArtist(Artist artist) {
this.artist = artist;
}
@Override
public String toString() {
return "Track{" +
"id=" + id +
", title='" + title + '\'' +
", duration=" + duration +
'}';
}
}
package org.kodejava.commons.beanutils.support;
public class Artist {
private Long id;
private String name;
public Artist() {
}
public Artist(Long id, String name) {
this.id = id;
this.name = name;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
Maven Dependencies
<dependency>
<groupId>commons-beanutils</groupId>
<artifactId>commons-beanutils</artifactId>
<version>1.9.4</version>
</dependency>
Latest posts by Wayan (see all)
- How do I get number of each day for a certain month in Java? - September 8, 2024
- How do I get operating system process information using ProcessHandle? - July 22, 2024
- How do I sum a BigDecimal property of a list of objects using Java Stream API? - July 22, 2024