Java 无法理解函数行为
我正在为java 8中提供的Java 无法理解函数行为,java,lambda,Java,Lambda,我正在为java 8中提供的java.util.function包中的IntFunction创建一个Lambda表达式 当我写下面这样的表达时,它的工作很好: int i = 10; IntFunction<Employee> intFunction = (i) -> new Employee(i, "name"); inti=10; IntFunction IntFunction=(i)->新员工(i,“姓名”); 但当我在下面写表达式时,它显示编译时错误类型不匹配:无法
java.util.function
包中的IntFunction
创建一个Lambda表达式
当我写下面这样的表达时,它的工作很好:
int i = 10;
IntFunction<Employee> intFunction = (i) -> new Employee(i, "name");
inti=10;
IntFunction IntFunction=(i)->新员工(i,“姓名”);
但当我在下面写表达式时,它显示编译时错误类型不匹配:无法从int转换为IntFunction
:
IntFunction IntFunction=(10)->新员工(10,“姓名”);
是否需要将声明的变量作为输入传递给Lambda表达式。我们不能直接传递Lambda表达式所期望的类型的值吗???您可以声明这样的方法:
intadd(10,20){return 30;}
?不,这是不可能的。所以这里也是一样??对!!这是一个用于各种值的编译表单。好的,这意味着它不允许以后用于不同的值,否则它会被这一个值卡住。谢谢你澄清了这个概念。
IntFunction<Employee> intFunction = (10) -> new Employee(10, "name");