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

标签 java generics types

我的函数原型(prototype):

private String buildParamaters(Object[][] arguments)

此方法构建一个 URL。

arguments 的示例值可能是:

List<String> items = ...
new Object[][] {{"key1", 25}, 
                {"key2", "a string"},
                {"key3", items}}

因此,第一个维度始终是一个字符串,但第二个维度可以是一系列类型。

我如何定义这个参数而不是 Object[][] 以便第一个维度是一个字符串?还有一个额外的问题:是否有任何实用的替代方法来将第二维定义为通用类型?

最佳答案

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

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)
};

关于java - 我可以更具体地传递一个二维数组,其中一个维度是一个字符串,另一个维度是 "generic",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16360118/

相关文章:

android - 如何获取在android中textview的edittext中输入的单词的长度?

java - 为什么我运行它时显示 Hello World?

java - 使用三元运算符返回 Collections.emptyList() 失败

Java比较泛型类型

JavaFX 绑定(bind)到嵌套列

mysql - 在 MySQL 中选择数据类型

java - setMnemonic() 并通过按键调用方法

java - 如何在 hibernate 中比较日期

java - 写入新文件

haskell - Haskell 中的类 OO 接口(interface)实现