Java如何设置bean的映射属性值?

本示例演示如何使用PropertyUtils.setMappedProperty()方法修改Mapbean的类型化属性值。要设置属性,我们需要将bean实例,属性名称,映射键和映射值传递给PropertyUtils.setMappedProperty()方法。

package org.nhooo.example.commons.beanutils;

import org.apache.commons.beanutils.PropertyUtils;

import java.util.HashMap;
import java.util.Map;

public class PropertySetMappedExample {

    public static void main(String[] args) {
        // 创建Recording bean的实例。
        Recording recording = new Recording();
        recording.setId(1L);
        recording.setTitle("Introduction");

        // 创建映射以保存记录轨道。
        Map<String, Track> tracks = new HashMap<>();
        tracks.put("track-one", new Track());
        tracks.put("track-two", new Track());
        tracks.put("track-three", new Track());
        recording.setMapTracks(tracks);

        try {
            // 我们使用添加另一个轨道到录音轨道
            // 一个PropertyUtils.setMappedProperty()方法。
            PropertyUtils.setMappedProperty(recording, "mapTracks", "track-four", new Track());
            PropertyUtils.setMappedProperty(recording, "mapTracks", "track-five", new Track());
        } catch (Exception e) {
            e.printStackTrace();
        }

        tracks = recording.getMapTracks();
        System.out.println("New Track Numbers: " + tracks.size());
        for (String key : tracks.keySet()) {
            System.out.println(key + " = " + tracks.get(key));
        }
    }
}

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>