首页 新闻 搜索 专区 学院

lambda表达式在addMouseListener中无法使用

0
悬赏园豆:20 [已关闭问题] 解决于 2018-03-05 10:00

建立了一个函数接口, 为了使用lambda表达式, 大概是这样

package impl;

import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;

@FunctionalInterface
public interface LambdaMouseListener extends MouseListener {

@Override
default void mousePressed(MouseEvent e) {
}

@Override
default void mouseReleased(MouseEvent e) {
}

@Override
default void mouseEntered(MouseEvent e) {
}

@Override
default void mouseExited(MouseEvent e) {
}

}

 

之后发现, 下面的代码(使用lambda表达式), 里面的方法体执行不成功, 且编译没问题, 且运行没有报错

ml_importQB.addMouseListener((LambdaMouseListener) (e) -> {
  System.out.println("click");
});

但下面的代码(使用匿名内部类的方式)能够成功执行里面的方法体

ml_importQB.addMouseListener(new MouseAdapter() {
@Override
public void mousePressed(MouseEvent e) {
  System.out.println("click");
  }
});

求教大神, 该如何将lambda表达式运行到addMouseListener上面

逆光影者的主页 逆光影者 | 初学一级 | 园豆:162
提问于:2018-03-01 17:49
< >
分享
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册