如何在接口方法中用方法参考替换lambda?
public abstract interface Job
{
public abstract String empName();
public void JobWithDesc(String title)
{
setJobValueDesc(title, empName());
}
}
public final class JobClient {
private static final Job job;
static {
job = () -> ListJob.getName;
}
public static final Job getJob() {
return job;
}
}
希望用引用替换此(job =()-> ListJob.getName;)lambda。请帮助我
答案 0 :(得分:1)
job = "EmpApplication"::toString;
但是,问题是,为什么要将它转换为方法引用。
这是一个简单的lambda,返回String
文字。没有方法被调用。
我们可以将"EmpApplication"
包装到静态方法中并对其进行引用,也可以使用返回自身的实例方法。
答案 1 :(得分:0)
您需要定义一个方法:
public static String getEmpApp() {
return "EmpApplication";
}
并使用它:
static {
job = JobClient::getEmpApp;
}
不过,我认为这样做毫无意义。
也就是说,您的Job
界面存在编译错误。 JobWithDesc
方法应为static
或default
,它调用的方法-setJobValueDesc
-在任何地方都没有定义。