gpt4 book ai didi

java - 如何使用 lambda 在 Java 中实现两个抽象方法?

转载 作者:行者123 更新时间:2023-12-02 12:27:46 25 4
gpt4 key购买 nike

我在下面的代码中有一个功能接口(interface),它有一个抽象方法和一个对象方法重写。因此,当我为此编写 Lambda 表达式时,如何实现我的 equals 方法。

import static java.lang.System.out;

public class Test {
public static void main(String[] args) {
AddToString test = a -> (a + " End");
out.println(test.stringManipulation("some string"));
out.println(test.increment(5));
out.println(test.equals(null));
}
}

@FunctionalInterface
interface AddToString {
String stringManipulation(String a);
default int increment(int a) { return a+1; }
@Override
public boolean equals(Object obj);
}

一种方法是创建如下所示的匿名类,但是是否有更好的使用 lambda 表达式的方法 -

public class Test {
public static void main(String[] args) {
AddToString test = new AddToString() {
public String stringManipulation(String a) {
return a + " End";
}
@Override
public boolean equals(Object Obj) {
//Just testing whether it overrides
return 5==5;
}
};
out.println(test.stringManipulation("some string"));
out.println(test.increment(5));
out.println(test.equals(null));
}
}

最佳答案

你不能。如果您需要重写equals,则需要创建一个类(匿名或其他),而不能使用 lambda 来实现。

关于java - 如何使用 lambda 在 Java 中实现两个抽象方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38344017/

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