我有一个棘手的任务要在Java中完成。我必须用作为lambda表达式传递的代码对mouseclick做出反应(在控制台打印'OK')。问题是我不能修改主类,我必须准备类/接口来接收lambda表达式。我试着去学习Lambda表达式的教程,但是我不断地得到关于使用非函数接口的错误。主:
import javax.swing.*;
public class Main {
public static void main(String[] args) {
SwingUtilities.invokeLater( ()-> {
JFrame f = new JFrame();
JButton b = new JButton("Mouse Click");
b.addMouseListener ( (MousePressListener) e -> System.out.println("ok") );
f.add(b);
f.pack();
f.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
f.setVisible(true);
}
);
}
}
你们有更多经验的人能给我一些建议,我如何开始处理这个问题?我开始创建一个类,但后来就迷路了(我创建了这个类,并且使用了'implements',所以现在键入MousePressListener也是MouseListener,对吗?)
public class MousePressListener implements MouseListener {
@Override
public void mouseClicked(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseEntered(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseExited(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mousePressed(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseReleased(MouseEvent e) {
// TODO Auto-generated method stub
}
}
对于除mouseclicked
之外的所有内容,使用具有默认方法的接口而不是类:
@FunctionalInterface
public interface MousePressListener extends MouseListener
{
@Override
default public void mouseEntered(final MouseEvent e) {
}
@Override
default public void mouseExited(final MouseEvent e) {
}
@Override
default public void mousePressed(final MouseEvent e) {
}
@Override
default public void mouseReleased(final MouseEvent e) {
}
}
因此,现在mousepresslistener
是一个只有一个非默认方法的接口,这是函数接口所需的。这可以在根本不更改main
类的情况下使用。
我正在调用react组件中的函数 在我的createComment函数中,“”未定义 我需要在createComment函数中调用this.setState。如何使成为组件的this??
逻辑运算符 import operator a = -1 b = 5 print('a =', a) print('b =', b) print() print('not_(a) :', operator.not_(a)) print('truth(a) :', operator.truth(a)) print('is_(a, b) :', operator.is_(a,
我在React函数组件和默认所需道具方面遇到问题。 以下是组件: 我应该能够在不传递道具: 但是,TypeScript引发类型错误属性“message”在类型“{}”中丢失,但在类型“Props”中是必需的: 下面是代码沙盒中的问题:https://codesandbox.io/s/still-microservice-lp7b5?fontsize=14 我不确定我是做错了什么,还是这是打字稿中的
这在React版本0.12中工作得非常好: 变量获取呈现组件的实际DOM节点。但是,将其转换为React 0.13并不像预期的那样工作: 我尝试了React.findDOMNode(this),它也不起作用。基本上,我只是试图获取由渲染函数渲染的顶级dom节点,而不使用ref。这有可能吗?
我在网上找不到任何关于这个话题的东西。有没有办法告诉你的机器人对旧消息做出反应?类似的东西: 1-烤面包机:嘿 2-乔纳森:!!反应 会让机器人对烤面包机说“嘿”做出反应吗?或者做一些更老的事情,比如对消息作出反应5条消息向上。我没有这方面的代码,但我知道不和谐。js很好,并且知道如何正常地向消息添加反应。
我是新的TypeScript。我想通过打字稿的接口来反应状态,然后呈现状态。但是我不知道如何传递接口值来反应状态。