我在我的函数中使用了elipses:
public static void test(int parameter1, HashMap... args) {
System.out.print("\n" + parameter1);
}
想直接使用hashMap值调用此函数:test(2,{test1=test1, test=test})
我想要的最终方案是将不同的键值对传递给函数,并希望在函数中访问它们。
说test(2,key1=value1,key2=value2,key3=value3 ....
等等。可以建议任何数据类型而不是HashMap。
答案 0 :(得分:3)
elipses意味着你可以传递一些HashMaps。我不认为这是你打算做的。 如果这是您想要的,您可以传入整个HashMap。或者你可以从HashMap中检索值,并传递它们。但是如果你想要键/值对,那么最好只传入整个HashMap。
答案 1 :(得分:1)
在Java中,您可以使用以下
test(2, new HashMap() {{put("test1", "test1");
put("test", "test");}});
答案 2 :(得分:0)
您的功能(使用String
作为类型):
private static void test(final Pair<String, String>... args) {
for (Pair<String, String> p : args) {
System.out.printf("%s=%s\n", p.getKey(), p.getValue());
}
}
示例电话:
test(new Pair<String, String>("test1", "test1"),
new Pair<String, String>("test", "test")
);
此示例的输出:
test1=test1
test=test