Java FunctionInterface能否扩展非FunctionInterface类?
我现在正在学习,我被分配了一个简单的任务。 我必须使这段代码正常工作(我不能修改它):Java FunctionInterface能否扩展非FunctionInterface类?,java,interface,mouselistener,functional-interface,Java,Interface,Mouselistener,Functional Interface,我现在正在学习,我被分配了一个简单的任务。 我必须使这段代码正常工作(我不能修改它): 我认为MousePressListener应该是FunctionInterface,但它不能扩展MouseListener。有没有办法解决这个问题,或者我是从坏的方面来解决的?addMouseListener需要一个MouseListenerMouseListener具有多个抽象方法。因此,lambda表达式的类型不能是MouseListener 我不知道什么是MousePressListener,但是如果它
我认为MousePressListener应该是FunctionInterface,但它不能扩展MouseListener。有没有办法解决这个问题,或者我是从坏的方面来解决的?
addMouseListener
需要一个MouseListener
MouseListener
具有多个抽象方法。因此,lambda表达式的类型不能是MouseListener
我不知道什么是
MousePressListener
,但是如果它是一个扩展MouseListener
的接口,它仍然会从MouseListener
继承多个抽象方法,所以它不能是一个函数接口。请看,为什么不创建一个非函数接口的随机类Foo
,制作一个界面Bar
,该界面扩展了仅具有一个抽象方法的Foo
,并将@functioninterface
注释添加到Bar
?如果Bar
在Java眼中不是一个功能接口,它就不会编译。实际上,它可以。通过将“mouseClicked”抽象化,并将“mouseEntered”、“mouseExited”、“mousePressed”和“mouseerelease”默认设置为“mouseEntered”。不过,感谢您的帮助:)
JButton b = new JButton("Myszą ciśnij");
b.addMouseListener ( (MousePressListener) e -> System.out.println("ok"));