为什么这是错的?关于java 8流媒体
发布时间:2020-12-15 04:23:12 所属栏目:Java 来源:网络整理
导读:public interface FilterM { boolean match(M m); public static T CollectionT filter(CollectionT collection,FilterT filter) { return collection.stream().filter(filter::match).collect(Collectors.toList()); } ///////////////////////////////////
public interface Filter<M> { boolean match(M m); public static <T> Collection<T> filter(Collection<T> collection,Filter<T> filter) { return collection.stream().filter(filter::match).collect(Collectors.toList()); } //////////////////////////////////////////////////////////////// public static void main(String[] args) { ArrayList<Integer> intList = new ArrayList<>(Arrays.asList(1,2,3,4,5,6,7,8)); System.out.println(intList); List<Integer> list = filter(intList,null); System.out.println(list); } } 我正在学习java 8流媒体功能,这是我有问题的代码…… 我不知道为什么参数intList与filter()方法不匹配. Java应该知道< T>这是整数,对吧? 解决方法
我还不确定你为什么会遇到这个特定的错误,但问题是你的方法声明它将返回Collection< T>,但你试图将结果分配给List< T>.如果您将过滤器的声明更改为:
public static <T> List<T> filter(Collection<T> collection,Filter<T> filter) …然后它编译没有问题. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |