gpt4 book ai didi

Java怪异运算符()->含义及字符串操作

转载 作者:行者123 更新时间:2023-12-01 23:05:50 26 4
gpt4 key购买 nike

今天我遇到了部分奇怪的代码,我不明白。

这样的意思是什么()->例如

method( ()-> System.out.println("Hello") );

另一个问题是,String 的输出是什么:

[AB][CD]*EF+(X/Y)

当然没有任何 A、B 等的实例,但我有类似的答案

ABCDEFX,ACEFXX,ACEFXA,

我不记得他们了

有人可以帮我吗?

最佳答案

假设您有一个声明一个方法的接口(interface):

public static interface MyFunctionalInterface {
void m1();
}

并且您有一个接收该类型的对象作为参数的方法:

public void method(MyFunctionalInterface i) { ... }

您可以实现该接口(interface)并立即使用匿名内部类来使用它,如下所示:

method( new MyFunctionalInterface() {
public void m1() {
System.out.println("Hello");
}
});

在 Java 8 中,您可以将其替换为 lambda 表达式,例如您所展示的表达式:

method( () -> System.out.println("Hello"); );

空参数代表没有参数的m1()方法。

假设您使用的功能接口(interface)有一个带有一个参数的方法(例如,如果您的方法具有 method2(ActionListener s) { ... } 形式),那么您将使用:

method2( e -> System.out.println("Hello"); );

这与执行此操作相同:

method2( new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.out.println("Hello");
}
});

有很多关于 Java 8 中 Lambda 表达式的教程。This one是一个很好的快速入门。

关于Java怪异运算符()->含义及字符串操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22764040/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com