当前位置: 首页 > 面试题库 >

外行的Java 8供应商和消费者说明

祁飞飙
2023-03-14
问题内容

作为学习Java的非Java程序员,我现在正在阅读SupplierConsumer接口。而且我无法理解它们的用法和含义。什么时候以及为什么要使用这些接口?有人可以给我一个简单的外行例子吗?我发现Doc例子不够简洁,无法理解。


问题答案:

这是供应商:

public Integer getInteger() {
    return new Random().nextInt();
}

这是消费者:

public void sum(Integer a, Integer b) {
    System.out.println(a + b);
}

因此,用通俗易懂的术语来说,供应商是一种返回一些值(如返回值)的方法。而使用者是一种消耗一些值(如在方法参数中)并对其执行一些操作的方法。

这些将转变为以下形式:

// new operator itself is a supplier, of the reference to the newly created object
Supplier<List<String>> listSupplier = ArrayList::new;
Consumer<String> printConsumer = a1 -> System.out.println(a1);
BiConsumer<Integer, Integer> sumConsumer = (a1, a2) -> System.out.println(a1 + a2);

至于用法,最基本的示例是:Stream#forEach(Consumer)方法。它需要一个Consumer,它使用您要迭代的流中的元素,并对每个元素执行一些操作。大概打印出来。

Consumer<String> stringConsumer = (s) -> System.out.println(s.length());
Arrays.asList("ab", "abc", "a", "abcd").stream().forEach(stringConsumer);


 类似资料:
  • 作为一个学习Java的非Java程序员,我正在阅读关于和接口的文章。我无法理解它们的用法和含义。什么时候和为什么要使用这些接口?有人能给我一个简单的外行的例子吗…我发现医生的例子不够简洁,不足以让我理解。

  • 是否有一种方法以编程方式访问和打印使用者滞后偏移,或者说使用者读取的最后一条记录的偏移与某个生产者写入该使用者分区的最后一条记录的偏移之间的位置差。 要知道我的最终目标是将这个值发送到prometheus进行监视,我应该在上面添加哪些语句来得到滞后偏移值?

  • 我试图授权用户使用Oauth2从我的Django REST框架API访问一些资源。 大多数关于Oau2和API的答案都涉及使API成为提供者。 但是我打算和很多REST APIs共用一个Oauth2提供者,想不通怎么消费(不是怎么提供Oauth2)。 我不知道用户如何登录提供程序 SSO,然后将其令牌传送到我的消费 API,该 API 必须针对我的提供程序对用户进行身份验证(获取其信息,主要是授权

  • 我是Kafka的新手,我对消费者的理解是,基本上有两种类型的实现 1)高级消费者/消费者群体 2)简单消费者 高级抽象最重要的部分是当Kafka不关心处理偏移量,而Simple消费者对偏移量管理提供了更好的控制时使用它。让我困惑的是,如果我想在多线程环境中运行consumer,并且还想控制偏移量,该怎么办。如果我使用消费者组,这是否意味着我必须读取存储在zookeeper中的最后一个偏移量?这是我

  • Flink kafka消费者有两种类型的消费者,例如: 这两个消费者层次结构扩展了相同的类。我想知道维护编号类背后的设计决策是什么?我们什么时候应该使用其中一种? 我注意到带有数字后缀的类有更多的特性(例如ratelimiting)。 https://github.com/apache/flink/blob/master/flink-connectors/flink-connector-kafka

  • 本文向大家介绍消费者和消费者组有什么关系?相关面试题,主要包含被问及消费者和消费者组有什么关系?时的应答技巧和注意事项,需要的朋友参考一下 每个消费者从属于消费组。具体关系如下: