Java 将方法作为变量调用
我有一个我认为很简单的问题,但我找不到答案。我只想在if-else语句中使用方法返回的值。我不想调用if语句体中的方法,我希望在比较中使用该方法。我的目标是能够控制屏幕上的一个框,但目前我只是想测试我的箭头键方法是否有效。谢谢你的帮助Java 将方法作为变量调用,java,if-statement,awt,Java,If Statement,Awt,我有一个我认为很简单的问题,但我找不到答案。我只想在if-else语句中使用方法返回的值。我不想调用if语句体中的方法,我希望在比较中使用该方法。我的目标是能够控制屏幕上的一个框,但目前我只是想测试我的箭头键方法是否有效。谢谢你的帮助 package robot; import java.awt.*; import java.awt.event.KeyEvent; public class Robot { public static void main(String[] args) {
package robot;
import java.awt.*;
import java.awt.event.KeyEvent;
public class Robot {
public static void main(String[] args) {
if (keyPressedLeft==true) {
System.out.println("You pressed the left arrow");
}
}
public boolean keyPressedLeft(KeyEvent e){
if (e.getKeyCode()== KeyEvent.VK_LEFT) {
return true;
} else {
return false;
}
}
“我不想在语句中调用该方法,我想在比较中使用该方法。”不,仅凭名称,你什么也得不到。你必须将你的陈述从
if (keyPressedLeft==true) {
到
可以进一步简化为
if (keyPressedLeft(parameter)) {
只需将print语句放在
keyPressedLeft()
方法中,而不是main()
。您打算如何在不调用该方法的情况下访问该方法返回的值?“我不想在语句中调用该方法,我希望在比较中使用该方法。”
--嗯?请澄清,因为这没有意义。完全正确。编辑以澄清原因是==
正在检查它们是否是相同的静态内存单元true
是一种基本数据类型,而keyPressedLeft()
是一种方法,因此它们显然不能相同。您希望实际获取该方法的返回值,并查看该返回值是否与true
相同。当我这样做时,它表示我无法将布尔值转换为KeyEvent。我为参数输入了true。@MK4。方法的参数具有类型。只能传递此类型的参数。将布尔值传递给以KeyEvent为参数的方法没有意义。就像试着把信用卡放进汽水自动售货机里拿硬币一样。那么我能做一些类似“如果(keyPressedLeft返回(true))”的事情吗?我试过了,但它不起作用,我几乎肯定我的编码不对,但这通常是我需要做的吗?public boolean keyPressedLeft(KeyEvent e)
要调用该方法,必须给它一个KeyEvent
,您必须自己创建该事件。如果您只想在按键时打印某些内容,只需将打印语句放入keyPressedLeft()
方法中即可。
if (keyPressedLeft(parameter)) {