【问题标题】:How can I pass a HashMap as parameters如何将 HashMap 作为参数传递
【发布时间】:2020-07-23 22:03:52
【问题描述】:

我有一个类 API,您可以在其中设置和获取稍后用于 API 调用所需的信息 我想让下一个使用它的人更容易。

所以不要这样做:

api.addURL("urltorequesttoken");
api.addHeader("client_id","sdfsfsdfsd")
   .addHeader("client_secret","sdfsdfsfsfd")
   .addHeader("grant_type","client_credentials")
   .addHeader("scope","READ");
api.addBody("bodyToSend")

我想这样做:

String URL = "";
URL = "put your URL here";

所以我将 URL 和其他变量作为参数传递给另一个方法,在那里我将执行我在第一个代码块中所做的事情,因此他们不需要了解 API 类及其方法,但我不知道如何处理哈希图,我怎样才能做到对用户友好?然后将其作为参数传递,接收此信息的方法应该具有什么类型的参数? (Map) 还是 (String key, String value)?

编辑(添加):

所以有一个 DEV 将要创建的类,我们称之为 CreateToken ,因此该类当前具有:

api.addURL("urltorequesttoken");
    api.addHeader("client_id","sdfsfsdfsd")
       .addHeader("client_secret","sdfsdfsfsfd")
       .addHeader("grant_type","client_credentials")
       .addHeader("scope","READ");
    api.addBody("bodyToSend")

还有一个名为 BASE 的类,我在其中做核心服务,为了让人们在创建他们的类时更容易,我不想在他们的类中使用该代码块,而是在我的类中,所以在他们的班级中,他们所要做的就是设置 URL、标题和正文(用于 POST 方法),所以不要这样:

api.addURL("urltorequesttoken");

他们会做的:

URL = "urltorequesttoken";

他们班上有一个方法可以给我发这个或让我得到它,例如。

fillAPICallInfo(URL, headers, body);

我将在 BASE 类上收到它,但我不知道如何处理 Map 变量,不知道如何使 DEV 变得容易,所以他们只放置键和值,以及我如何接收它在我的课堂上(作为地图或字符串)?

【问题讨论】:

  • 你的问题不是很清楚。我了解您当前正在代码中硬编码设置类 API 的参数,并且您希望将它们作为参数。这确实是个好主意。但是这一套实际上是怎么做的呢?您是从 API 还是从其他方法接收这些数据?
  • 我说对了吗?您的类 API 中有复杂的方法,但您想将所有参数放在一个字符串中并仅将该字符串传递给您的方法?
  • @MatteoNNZ 我添加了更多信息,感谢您的时间和回复
  • @vanje 我添加了更多信息,感谢您的时间和回复
  • 老实说,我真的看不出这两种方法有什么区别。在当前的方法中,他们必须将输入写入api.add* 方法。在您的方法中,他们必须将输入写入一个String(用于URL)、一个Map(用于标题)和另一个String(用于正文),然后调用您的函数。基本上他们会编写相同的代码行,+1 来调用你的函数。

标签: java api hashmap


【解决方案1】:

所以你可以简单地传递一个Map<String, String> 作为参数:

public void fillAPICallInfo(String url, Map<String, String> headers, String body) {
  // Assuming there is an instance of class DEV named api available
  api.addURL(url);
  headers.forEach((h, v) -> api.addHeader(h, v));
  api.addBody(body);
}

【讨论】:

    猜你喜欢
    • 2012-08-23
    • 1970-01-01
    • 1970-01-01
    • 2010-10-30
    • 2015-06-05
    • 2012-10-18
    • 2020-07-25
    • 1970-01-01
    • 2014-06-29
    相关资源
    最近更新 更多