java 抽象类 能用lambda表达式吗
3个回答
展开全部
抽象类不能,但是可以拓展一下。
例如,TimerTask是一个抽象类,
Timer timer = new Timer();
timer.schedule(new TimerTask() {
//代码...
}, 1000);
在这里用lambda的话就会报错,但可以把Timer拓展一下
public class MyTimer extends Timer {
public TimerTask schedule(final Runnable r, long delay) {
final TimerTask task = new TimerTask() { public void run() { r.run(); }};
this.schedule(task, delay);
return task;
}
}
然后使用MyTimer
MyTimer timer = new MyTimer();
timer.schedule(()->{
//代码...
}, 1000);
//或者
timer.schedule(this::run, 1000);
这样使用就不会报错了。
可以参考这个,换一种思维模式去写代码。
展开全部
你的意思是实例化抽象类能不能用lambda表达式吧,我刚试了,不行。
报错:
Target type of a lambda conversion must be an interface
报错:
Target type of a lambda conversion must be an interface
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询