我可以使用lambdas覆盖JDK8中的功能接口的toString方法 [英] Can I override toString method of functional interface in JDK8 using lambdas
问题描述
我可以覆盖功能界面的toString方法吗?
或改述。是否有优雅的方法来更改实现功能接口的匿名内部类并使用lambdas覆盖toString方法?
我可以在JDK8中创建lamba表达式时覆盖toString。
Can I override toString method of functional interface? Or rephrase. Is there elegant way to change anonymous inner class that implements functional interface and overrides toString method with lambdas? Can I override toString when I create lamba expression in JDK8.
interface Iface {
void do();
}
main() {
Iface iface = () -> /*do something*/
System.out.println(iface); // I would like to see anything useful in output
}
我可以覆盖toString吗? iface?
Can I override toString for iface?
推荐答案
不,lambda表达式用于表示一个方法接口,就好像它们只是函数一样。它是用Java(OOP语言)实现的函数式语言元素。
No, lambda expressions are used to express one method interfaces as if they are just functions. It's an element of functional languages that was implemented in Java (an OOP language).
要覆盖toString,必须在类中实现接口。
To override toString, you must implement the interface in a class.
这篇关于我可以使用lambdas覆盖JDK8中的功能接口的toString方法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!