Java 无法理解函数行为

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 8中提供的
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");