在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");
如果是这样,那么我们就不需要功能界面的方法名称。
答案 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;。