我目前正在使用Java进行S3上传,并且正在向文件中添加一组用户元数据。我想了解一下,是否可以将字符串列表添加到用户元数据中的参数之一。

我当前的代码段如下-

ObjectMetadata objectMetadata = new ObjectMetadata();

Map<String, Object> userMetadata = new HashMap<String, Object>();

userMetadata.put("a", "a1");
userMetadata.put("b", "b1");

List<String> c = new ArrayList<String>();
c.add("c1");
c.add("c2");
userMetadata.put("c", c);

objectMetadata.setUserMetadata(userMetadata);


但是,我在“ objectMetadata.setUserMetadata(userMetadata);”行遇到了编译时错误。

最佳答案

setUserMetadata需要一个Map<String, String>,而不是像您一样的Map<String, Object>-因此您不能直接在其中使用列表。例如,您可以加入:

Map<String, String> userMetadata = new HashMap<>(); // Note the type!

userMetadata.put("a", "a1");
userMetadata.put("b", "b1");

List<String> c = new ArrayList<>();
c.add("c1");
c.add("c2");
userMetadata.put("c", String.join(",", c); // list is joined when added to the map

objectMetadata.setUserMetadata(userMetadata);

10-08 17:21