"b" "c" -> "d" 现在我应该解析这个 Hashmap 并创建一个像这样的函数 - someFun(-6ren">
gpt4 book ai didi

java - 使用HashMap创建动态函数调用

转载 作者:行者123 更新时间:2023-12-01 23:08:49 25 4
gpt4 key购买 nike

我正在尝试使用 HashMap 创建函数调用。
例如,

Hashmap--
"a" -> "b"
"c" -> "d"

现在我应该解析这个 Hashmap 并创建一个像这样的函数 -

someFun("{a:#,c:#}",new SomeClass(b),new SomeClass(d));

如您所见,ac 是 hashmap 的键(第一个参数);
b d 用于创建对象(第二个参数等等......)
someFun 参数取决于 HashMap 大小..

我很困惑!
因为我可以循环遍历 map 来获取键并轻松创建第一个参数。
对于第二个参数,我可以使用该值来创建对象。
但现在我如何将它们添加在一起以使函数按照指定的方式调用?
任何帮助将非常感激:)

P.S: My question is not about getting values/keys from hashmap,but using them to create a function call something as specified.I am not allowed to change someFun consider it as API call.

最佳答案

您需要的是这样的东西吗:

import java.util.Arrays;
import java.util.HashMap;
import java.util.Map.Entry;

public class Draft {

public static class SomeClass{

final private String val;

public SomeClass(String val) {
this.val = val;
}
}

public void someFun(String str, SomeClass ... classes) {
System.out.println("someFun" + str + Arrays.toString(classes));
}

public static void main(String[] args) {
HashMap<String, String> keyToParam = new HashMap<>();
keyToParam.put("a", "b");
keyToParam.put("c", "d");
String strArg = null;
SomeClass[] classes = new SomeClass[keyToParam.size()];
int pointer = 0;
for(Entry<String, String> entry: keyToParam.entrySet()) {
strArg += entry.getKey() + ":#";
classes[pointer++] = new SomeClass(entry.getValue());
}
new Draft().someFun(strArg, classes);
}

}

关于java - 使用HashMap创建动态函数调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22342209/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com