@FunctionalInterface
public interface myFunction<T> {
abstract double apply(T t);
}
上面的代码是我的功能界面。
以下代码是我的lambda表达式。函数接口在我的lambda表达式中做了什么,因为只有一个简单的“double”?如果没有功能界面,那会是什么样的?
import java.util.HashSet;
public class TestFindArea {
public static double findArea(myFunction<Double> f,double a,double b){
return (f.apply(a)+f.apply(b))*(b-a)/2;
}
public static void main(String[] args) {
System.out.println(findArea((x) -> x+2 , 4, 8) );
答案 0 :(得分:0)
功能界面在我的lambda表达式中的作用是什么 只是一个简单的双重&#39;?
你的功能接口代表一个函数,它采用泛型类型T
并返回一个double,这意味着无论我们将函数接口用作目标类型,最终我们都需要为其分配或传递一个满足的函数其SAM
的函数描述符。因此,在您的情况下,findArea((x) -> x+2 , 4, 8)
的第一个参数是传递给findArea
方法的函数,可以读作&#34;给定多个类型Double,添加数字2到它并返回结果&#34; 。
如果没有功能界面,会有什么样的?
然后你不能将函数作为参数传递给其他函数,也不能将函数用作其他函数的返回类型,也不能将lambda表达式赋给接口。