Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/348.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将方法作为变量调用_Java_If Statement_Awt - Fatal编程技术网

Java 将方法作为变量调用

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) {

我有一个我认为很简单的问题,但我找不到答案。我只想在if-else语句中使用方法返回的值。我不想调用if语句体中的方法,我希望在比较中使用该方法。我的目标是能够控制屏幕上的一个框,但目前我只是想测试我的箭头键方法是否有效。谢谢你的帮助

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)) {