java - 在 java 中使用 Arrays.asList 的协方差?

标签 java list types

当我创建一个列表时,我希望能急切地初始化它;所以我用了Arrays.asList .然而,它似乎不是关于继承的协变。

例如,

List<NameValuePair> p = Arrays.asList(new BasicNameValuePair("c", coin), new BasicNameValuePair("mk_type", fromCoin));

不起作用( BasicNameValuePairNameValuePair 的派生类)。

虽然可以使用 add和往常一样。

List<NameValuePair> pairs = new ArrayList<>();
pairs.add(new BasicNameValuePair("c", coin));
pairs.add(new BasicNameValuePair("mk_type", fromCoin));

由于库 API 只接受 List<NameValuePair> type 作为它的参数,我必须定义 pairs这边走。有没有办法优雅地处理这个问题?

最佳答案

如果我理解您的问题,那么我相信您可以在对 Arrays.asList 的方法调用中使用显式1 泛型,例如

List<NameValuePair> p = Arrays.<NameValuePair>asList(new BasicNameValuePair(
        "c", coin), new BasicNameValuePair("mk_type", fromCoin));

1 Generic Methods (The Java Tutorials)

关于java - 在 java 中使用 Arrays.asList 的协方差?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32262243/

相关文章:

python - 为什么将列表元素分配给变量在这里以不同的方式工作?

c++ - 复杂表达式中的位移位问题

python - 如何判断 Python 对象是否为字符串?

java - 测试连接时出现 Bitbucket 错误 : “javax.net.ssl.SSLHandshakeException: General SSLEngine problem”

list - Haskell - 如何创建一个从列表中返回第五个元素的函数

java - 编程时 Eclipse 无法编译并且自动完成功能不起作用

python - 从列表中提取与第三个列表中包含的另一个列表的项目具有相同索引的值

types - OCaml 类型/模块

java - 如何使用 android 从 Nest API 检索 Json 对象

java - 如何为每个超链接指定不同的操作