当我创建一个列表时,我希望能够急切地初始化它; 所以我用过Arrays.asList.然而,它似乎与继承没有协变性.
例如,
List<NameValuePair> p = Arrays.asList(new BasicNameValuePair("c", coin), new BasicNameValuePair("mk_type", fromCoin));
Run Code Online (Sandbox Code Playgroud)
不起作用(BasicNameValuePair是派生类NameValuePair).
虽然可以add照常使用.
List<NameValuePair> pairs = new ArrayList<>();
pairs.add(new BasicNameValuePair("c", coin));
pairs.add(new BasicNameValuePair("mk_type", fromCoin));
Run Code Online (Sandbox Code Playgroud)
由于库API只接受List<NameValuePair>type作为其参数,我必须以pairs这种方式定义.有没有办法优雅地处理这个问题?
如果我理解你的问题,那么我相信你可以使用一个明确1种在方法调用泛型类型来Arrays.asList喜欢
List<NameValuePair> p = Arrays.<NameValuePair>asList(new BasicNameValuePair(
"c", coin), new BasicNameValuePair("mk_type", fromCoin));
Run Code Online (Sandbox Code Playgroud)