我可以更具体地传递二维数组,其中一个维度是字符串,而另一个维度是"通用"

Car*_*arl 1 java generics types

我的函数原型:

private String buildParamaters(Object[][] arguments)
Run Code Online (Sandbox Code Playgroud)

此方法构建一个URL.

参数的示例值可能是:

List<String> items = ...
new Object[][] {{"key1", 25}, 
                {"key2", "a string"},
                {"key3", items}}
Run Code Online (Sandbox Code Playgroud)

因此,第一个维度始终是String,但第二个维度可以是一系列类型.

而不是Object [] []如何定义这个参数,以便第一个维度是一个字符串?和红利问题:是否有任何实际的替代方案将第二维定义为泛型类型?

das*_*ght 6

用自定义对象数组替换数组数组,如下所示:

public class KeyedItem {
     private final String key;
     private final Object value;
     public KeyedItem(String key, Object value) {
         this.key = key;
         this.value = value;
     }
}
...
private String buildParamaters(KeyedItem[] arguments) {
    ...
}
...
KeyedItem[] arguments = new KeyedItem[] {
    new KeyedItem("key1", 25)
,   new KeyedItem("key2", "a string")
,   new KeyedItem("key3", items)
};
Run Code Online (Sandbox Code Playgroud)