如何将函数列表作为参数发送

时间:2018-10-11 07:16:02

标签: java list tags

我具有在S3中标记文件的功能:

public void setTAGToFile(String filekey, String externalS3Bucket, String tagKey, String tagValue)  {

    List<Tag> tags = new ArrayList<Tag>();
    tags.add(new Tag(tagKey, tagValue));
    ObjectTagging objectTags = new ObjectTagging(tags);
    common.tagObjectInS3(externalS3Bucket, filekey, objectTags);
}

在这里我只能用键和值标记一次。如何更改我的功能以支持获取多个标签?我当时在考虑使用for循环并在循环主体中使用tags.add

for (Tag tag: tags)
{
   tag.add(/* ... */);
}

但是我不确定在函数输入中要进行哪些更改?

1 个答案:

答案 0 :(得分:0)

如果我理解正确的问题,您想传递几个键值对吗?

当场我可以想到三种方法:

  1. 由于键是唯一值,因此可以传递Map Java HashMap
  2. 您可以创建自己的类并将其作为列表传递
  3. 不要重新发明轮子。如luk2302所述,有一个类描述带有键和值的标签。如果有人已经解决了问题,为什么还要麻烦呢?通话就像(即使不推荐)一样

    setTAGToFile(
       “字符串”,
       “字符串”,
       “字符串”,
       new ArrayList(){
          新标签(“键”,“值”),
          new Tag(“ Key”,“ Value”)}