S3 загрузить пользовательский список метаданных строки - PullRequest
1 голос
/ 14 января 2020

В настоящее время я работаю над загрузкой S3 в Java, и я должен добавить набор метаданных пользователя в файл. Я пытаюсь понять, могу ли я добавить список строк к одному из параметров в метаданных пользователя.

Ниже приведен мой фрагмент кода -

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); "

1 Ответ

0 голосов
/ 14 января 2020

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);
...