Java 8不需要功能接口方法名称

时间:2018-04-10 13:38:13

标签: java functional-interface

在java 8中,当我们有一个功能接口时,它只携带一个未实现的方法:

@FunctionalInterface
public interface Interface1 {

    void method1(String str);

}

现在我们在Class中实现这个接口:

public class MyClass implements Interface1 {

    @Override
    public void method1(String str) {
    }
}

最后让我们说当我需要从另一个类中调用这个方法时

Interface1 object = new MyClass();
object.method1("Say Hello");

这是否等同于

object.("Say Hello");

如果是这样,那么我们就不需要功能界面的方法名称。

1 个答案:

答案 0 :(得分:0)

由于您在此处提供的示例实际上是Consumer,因此可以将其应用于数据流(在您的示例中为String Consumer),以对流的每个元素执行给定操作。 在这种情况下,您不需要明确方法名称;像:

List<String> strList = ...;
strList.stream().forEach((str) -> System.out.println(str));

,其中

(str) -> System.out.println(str)

是您的字符串消费者

但这仅仅是因为功能界面方法的使用隐藏在&#34; forEach&#34;定义

我想这可能是你所说的&#34;方法名称不需要&#34;。