当我创建一个列表时,我希望能急切地初始化它;所以我用了Arrays.asList
.然而,它似乎不是关于继承的协变。
例如,
List<NameValuePair> p = Arrays.asList(new BasicNameValuePair("c", coin), new BasicNameValuePair("mk_type", fromCoin));
不起作用( BasicNameValuePair
是 NameValuePair
的派生类)。
虽然可以使用 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));
关于java - 在 java 中使用 Arrays.asList 的协方差?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32262243/