我目前正在使用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);