java - 返回外部方法错误

标签 java methods return

boolean openingboard;
{   
Robot robot = new Robot();
Color color3 = new Color(108, 25, 85);
Rectangle rectangle = new Rectangle(0, 0, 1365, 770);
    while(true)
    {
    BufferedImage image = robot.createScreenCapture(rectangle);
    search: for(int x = 0; x < rectangle.getWidth(); x++)
        {
        for(int y = 0; y < rectangle.getHeight(); y++)
            {
                if(image.getRGB(x, y) == color3.getRGB())
                {
                    System.out.println("About to finish and return true");
                    return true;
                }
                System.out.println("About to finish and return false");
            }
        }
    }
}

错误是: java:71: 返回外部方法

返回真值

^

我不知道这是怎么回事,请帮忙!

最佳答案

根据您上面的评论回复,我将做出有根据的猜测您相信

boolean openingboard;
{
    return true;
}

定义了一个名为 openingboard 的 Java 方法。事实并非如此。 Java 遵循 C 范式,要求您​​在括号中指定您的参数,无论您是否有任何参数。所以,方法

boolean openingboard() {
    return true;
}

是一个有效的 Java 方法(假设它在某个类中),就像 openingboard 的一个版本一样,在大括号之间有更多的代码。

也就是说,我将传递一些关于 Java 风格的友好提示:

  • Java(实际上是大多数高级语言)程序员往往不喜欢“永远”循环,例如 while (true),因为这些循环使得确定循环何时真正停止变得更加困难.
  • 代码中不需要标签search,标签比永远循环更不鼓励。

所以,我建议重写您的代码,使其看起来像

private boolean openingboard() {
    Robot robot = new Robot();
    Color color3 = new Color(108, 25, 85);
    Rectangle rect = new Rectangle(0, 0, 1365, 770);
    BufferedImage image = robot.createScreenCapture(rect);
    for(int x = 0; x < rectangle.getWidth(); x++) {
        for(int y = 0; y < rectangle.getHeight(); y++) {
            if(image.getRGB(x, y) == color3.getRGB())
                return true;
        }
    }

    return false;
}

当然假设您更喜欢调试器来跟踪打印。

关于java - 返回外部方法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9304659/

相关文章:

methods - 列表类型的 defmethod

javascript - 在 JS 中定义函数/方法之间的区别?

java - 无法从嵌套的 for 循环返回字符串

c++ - 在没有模板特化的情况下更改函数的返回类型。 C++

java - 测试期间假设高概率情况

java - 通过封闭类类型变量绑定(bind)的内部类类型参数

Java 泛型 -> 函数返回类型

java - 为什么我不能声明一个参数化的静态类变量?

java - 如何从单独的类中检索 ArrayList<Item>?

android - 为什么不返回值?