Java 如何在一行中初始化集合?
我像这样创建我的列表,并将其传递给带有InitialListeners的方法Java 如何在一行中初始化集合?,java,list,collections,Java,List,Collections,我像这样创建我的列表,并将其传递给带有InitialListeners的方法,,然后我看不到任何编译错误,它工作正常 List<Host.StateListener> cassListener = new ArrayList<>(); // line 1 cassListener.add(new CassListener()); // // line 2 Builder clusterBuilder = Cluster.builder(); Cluster cluste
,
,然后我看不到任何编译错误,它工作正常
List<Host.StateListener> cassListener = new ArrayList<>(); // line 1
cassListener.add(new CassListener()); // // line 2
Builder clusterBuilder = Cluster.builder();
Cluster cluster =
clusterBuilder
.withInitialListeners(cassListener).build();
但使用这种方法,会产生如下所示的编译错误:
The method withInitialListeners(Collection<Host.StateListener>) in the type Cluster.Builder is not applicable for the arguments (List<CassListener>)
类型Cluster.Builder中带有InitialListeners(集合)的方法不适用于参数(列表)
什么地方出了问题,我该如何解决?我正在使用Java 7。理想情况下,您应该将withInitialListeners的签名更改为withInitialListeners(CollectionIs
withInitialListeners()
yours?或第三方库。您不应该做类似于new ArrayList(Arrays.asList(new CassListener())的事情吗
?@user2004685是的,没错..对不起,请回答,我会接受。我想@VGR在下面的回答中说了同样的话,所以没关系。:)是的,我不能更改签名,因为它是第三方库。
The method withInitialListeners(Collection<Host.StateListener>) in the type Cluster.Builder is not applicable for the arguments (List<CassListener>)
Arrays.<Host.StateListener>asList(new CassListener())