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

是系统的类型。出来打印功能接口?

朱英范
2023-03-14

我不明白一件事,方法引用的类型不应该是函数接口吗?那么我们如何通过这个系统呢。输出::println作为forEach的参数?在以下代码中:

1-is系统。是消费者吗?

2-如果是,它的泛型类型是什么?我不是指调用方法的列表类型,而是传递给foreach的方法引用的泛型类型。

Consumer<Integer> consumer=System.out::println;
numbers.forEach(consumer); 

共有3个答案

巫马令
2023-03-14
  1. 系统。出来println不是一个接口
  2. 系统。println可以被视为接口的impl,因为它接受一个参数,但不返回任何内容
何承
2023-03-14

这部分代码:

Consumer<Integer> consumer=System.out::println;

等于这个lambda表达式:

Consumer<Integer> consumer=i->System.out.println(i);

上面的代码块可以这样编写,作为使用使用者接口的匿名内部类:

Consumer<Integer> consumer=new Consumer<Integer>(){
   public void accept(Integer i){
      System.out.println(i);
   }
}

所以“System.out.println”本身并不是一个功能接口,但当您使用::时,您隐式地实现了消费者接口。

湛安宁
2023-03-14

系统的类型。出来println不是一个功能接口,因为系统。出来println是一种方法,而不是一个接口。

然而,该方法参考了系统。out::println可以用作功能接口的实现。由于println接受一个参数而不返回任何内容,因此可以说它“使用”了传递给它的参数。因此,它适合作为消费者的实现

请注意,println有多种变体,可用于实现不同的功能接口。

例如:

>

一个引用公共空println(双x)的方法可以实现Double消费者

引用public void println(Object x)的方法可以实现Consumer

 类似资料:
  • 我试试密码 <代码>系统。出来println(16 并且输出为2! 但是这是如何工作的?语法是什么?

  • 我如何才能使打印在控制台中的消息不是直接发出,而是一点一点地发出

  • 问题内容: 我需要在另一个类的此Java应用程序中编写打印功能的帮助。 这些功能与printAll我认为是正确的,而其他功能肯定是错误的。 我将在下面写下此问题所需部分的全部功能。 由于实际上没有看到DictionaryADT令人困惑,因此我将其包含在此处。 问题答案: 如果DictionaryADT是具有所有实际实现的类,则需要调用 我相信您然后在DictionaryADT中有Map,类似 要获

  • 我正在从兔子队列接收数据,我正试图将其转换为。消息始终以SOH字符开头,并始终以VT字符结尾,后跟ETX字符。数据接收正确,打印到控制台的字节数组正确。问题是,在转换为

  • 问题内容: 如何强制将Python的打印功能输出到屏幕? 这不是“ 禁用输出缓冲”的重复项-链接的问题正在尝试无缓冲输出,尽管这更通用。对于这个问题,最重要的答案太过强大或牵扯太多(对于这个问题,它们不是很好的答案),这个问题可以由相对新手在Google上找到。 问题答案: 在Python 3上,print可以采用可选参数 在Python 2上,你必须做 打电话后print。默认情况下,print