当我创建一个列表时,希望能对其进行初始化。所以我用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>
类型作为其参数,因此我必须以这种方式定义pairs
。有什么方法可以优雅地处理此问题吗? 最佳答案
如果我理解您的问题,那么我相信您可以在对Arrays.asList
的方法调用中使用explicit1泛型类型,例如
List<NameValuePair> p = Arrays.<NameValuePair>asList(new BasicNameValuePair(
"c", coin), new BasicNameValuePair("mk_type", fromCoin));
1 Generic Methods (The Java Tutorials)