建立了一个函数接口, 为了使用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上面