我有实现接口SampleClass的类ISampleInterface
方法需要Collection<ISampleInterface>作为参数,但是在我的代码中我想传递单个SampleClass对象。
我试图进行一些铸造:

Collection<ISampleInterface> col =
   (Collection<ISampleInterface>) Arrays.asList(new SampleClass[]{sampleClassInstance});


但是我出现了转换错误:

Cannot cast from List<SampleClass> to Collection<ISampleInterface>


有什么想法如何在一条优雅的路线上做到吗?

最佳答案

尝试在asList()调用中创建正确的数组类型:

Collection<ISampleInterface> col =
   (Collection<ISampleInterface>) Arrays.asList(
       new ISampleInterface[] { sampleClassInstance });


再说一次,“优雅”船驶过了IMO ...

我也不认为您需要显式转换为(Collection<ISampleInterface>)。所以你应该成为

Collection<ISampleInterface> col = Arrays.asList(
   new ISampleInterface[] { sampleClassInstance });


那里比较优雅

10-06 14:55