如何用接口方法的方法引用替换lambda? [关闭]
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何用接口方法的方法引用替换lambda? [关闭]相关的知识,希望对你有一定的参考价值。
如何用接口方法中的方法引用替换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;
}
}
想用引用替换this(job =() - > ListJob.getName;)lambda。请帮帮我
答案
job = "EmpApplication"::toString;
但问题是,您希望将其转换为方法参考。
这是一个简单的lambda返回String
文字。没有方法被调用。
我们可以将"EmpApplication"
包装成静态方法并引用它或使用返回自身的实例方法。
另一答案
您需要定义一个方法:
public static String getEmpApp() {
return "EmpApplication";
}
并使用它:
static {
job = JobClient::getEmpApp;
}
不过,我认为这样做没有意义。
也就是说,你的Job
界面有编译错误。 JobWithDesc
方法应该是static
或default
,它调用一个方法 - setJobValueDesc
- 没有在任何地方定义。
以上是关于如何用接口方法的方法引用替换lambda? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
如何用 setKeepAliveTimeout 方法替换 UIRemoteNotificationTypeVoip 方法?