在这个示例中,您将看到如何读取 bean 的嵌套属性,我们将使用 PropertyUtils.getNestedProperty ()方法。为了进行测试,我们将为 bean 创建三个类: Track 和 Artist,并将 ReadNestedProperty 作为主程序运行。
Track类将包含的属性Artist对象。使用PropertyUtils.getNestedProperty()方法,我们想要获得演唱曲目的歌手姓名。此方法将首先从 track 对象读取 artist 属性,然后读取 artist 对象的 name 属性。
使用PropertyUtils.getNestedProperty()它读取嵌套属性可以无限读取嵌套级别。
package org.nhooo.example.commons.beanutils;
import org.apache.commons.beanutils.PropertyUtils;
public class ReadNestedProperty {
    public static void main(String[] args) {
        Track track = new Track();
        track.setId(1L);
        track.setTitle("All My Loving");
        track.setArtist(new Artist(1L, "Beatles"));
        try {
            String artistName = (String) PropertyUtils.getNestedProperty(track, "artist.name");
            System.out.println("Artist Name = " + artistName);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}package org.nhooo.example.commons.beanutils;
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.nhooo.example.commons.beanutils;
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依赖
<!-- https://search.maven.org/remotecontent?filepath=commons-beanutils/commons-beanutils/1.9.3/commons-beanutils-1.9.3.jar --> <dependency> <groupId>commons-beanutils</groupId> <artifactId>commons-beanutils</artifactId> <version>1.9.3</version> </dependency>