当前位置: 首页 > 知识库问答 >
问题:

Java:创建一个简单的泛型方法,在应用过滤器后进行计数

鄢子平
2023-03-14
static int count(Collection < ? extends Number > numbers, Predicate < ? extends Number > predicate) {
  return numbers.stream().filter(predicate).count();
}

共有1个答案

壤驷骁
2023-03-14

您不能这样使用通配符,因为第二个参数依赖于第一个!您的版本暗示您希望获取一个苹果集合,然后对其应用一个Banana谓词。

换句话说:简单地声明一个非未知的类型参数;并使用:

static <T extends Number> long count(Collection<T> numbers, Predicate <T> predicate) {

对于记录:count()返回一个长结果;因此,我相应地更改了返回类型。如果这不是你想要的,你就必须转换为int,但是要承受(潜在的)信息丢失。

 类似资料:
  • 本文向大家介绍Java中泛型使用的简单方法介绍,包括了Java中泛型使用的简单方法介绍的使用技巧和注意事项,需要的朋友参考一下 一. 泛型是什么 “泛型”,顾名思义,“泛指的类型”。我们提供了泛指的概念,但具体执行的时候却可以有具体的规则来约束,比如我们用的非常多的ArrayList就是个泛型类,ArrayList作为集合可以存放各种元素,如Integer, String,自定义的各种类型等,但在

  • 问题内容: 为了调试目的,我想在处理输出流时将其内容转储到文件中。解析流将使用该流。 我可能会需要一个过滤器来存档它,在写我自己之前,我想问一下是否已经有现成的版本。 更新: 应该提到我在Android上工作。 我有什么: 所以我有一个和一个。 问题答案: 并不完全是准备推出一个,但是这可能会感兴趣。示例中有一个TeeOutputStream实现。

  • 安吉丽卡·兰格(Angelica Langer)在关于仿制药的常见问题解答中说(参见Technicalities.FAQ822): 如果这些方法具有具有不同边界的类型参数,则它们不会重写,因为这些方法的签名不是重写等价的。请记住,类型参数边界是泛型方法签名的一部分。 示例(泛型子类型方法重载泛型超类型方法;不推荐): 我不明白为什么方法在类中重载。据我所知,这应该是一个编译时错误,因为在和中具有相

  • 本文向大家介绍浅谈Golang中创建一个简单的服务器的方法,包括了浅谈Golang中创建一个简单的服务器的方法的使用技巧和注意事项,需要的朋友参考一下 我们知道,golang中的net/http包对网络的支持非常好,这样会让我们比较容易的建立起一个相对简单的服务器,我们来看一段代码 这里就建立起了一个比较简单的服务器,这个是什么意思呢?现在先大概的说一下,这里监听了一个我们本机的端口,然后接受客户

  • 问题内容: 假设我必须创建一个存储ArrayList的Integers数组,并且数组大小为10。 下面的代码可以做到这一点: 问题1: 我认为更合适的代码是 为什么这不起作用? 问题2: 下面两个都编译 有什么区别尽可能的引用声明和关注? 问题答案: 问题1: 基本上,这是Java语言禁止的。Java语言规范中的泛型部分对此进行了介绍。 使用时 您会收到编译器警告,因为以下示例将进行编译(为每行代

  • 我需要基于另一个流过滤一个流,并获取所有匹配条目的计数。 我已经尝试了以下和各种其他组合,但它没有按预期工作。 这个想法是: < li >对于从0到256的每个数字(流1) < li >查看该号码是否出现在另一个列表中(流2 ),如果出现的话 < li >计算出现次数除以流2中的元素总数(18)。 < li >如果没有出现,请收集0。 这基本上是根据流 2 中的出现次数查找流 1 中数字的频率。