gpt4 book ai didi

java - jGRASP 支持 Java lambda 表达式吗?

转载 作者:太空宇宙 更新时间:2023-11-04 12:57:34 25 4
gpt4 key购买 nike

我在 jGRASP 工作了一段时间,刚刚开始使用 Java 中的 lambda 表达式。我可以使用 lambda 表达式编译程序,但是当我尝试运行它们时,我总是收到此错误:

No main methods, applets, or MIDlets found in file

示例程序:

public class SquareComputer {

interface IntegerMath {
int operation(int a);
}

public int operateUnary(int a, IntegerMath op) {
return op.operation(a);
}

public static void main(String... args) {
SquareComputer myApp = new SquareComputer();
System.out.println(myApp.operateUnary(3, a -> a*a));
}
}

如果我注释掉最后一行,则程序将按预期编译并运行(当然,什么也不做)。

请注意,该程序是 Oracle tutorial here 中计算器示例的精简版本。 。如果我使用整个计算器程序,那么会发生同样的事情:编译但找不到要运行的 main 方法;但使用 lambda 表达式注释掉这些行,并且运行良好。对于我正在做的另一个项目也是如此;使用 lambda 表达式编译的任何单行都会导致程序无法找到 main 方法。

这是jGRASP的问题,还是我的Java安装的问题,还是我的理解的问题,还是其他的问题?我该如何解决这个问题?

编辑:更多数据点:如果我让 jGRASP 显示 UML 图,则具有 lambda 表达式的类被唯一标记为“外部类或接口(interface)”(没有 lambda 表达式,它通常被标记为“项目类”)。

如果我尝试通过 jGRASP 使用正则表达式创建 JAR 文件,最初 jGRASP 无法找到主类;但是一旦我指定了它,JAR 类就创建好了,我就可以从 jGRASP 外部以我想要的行为成功运行它。

最佳答案

我使用的是过时版本的 jGRASP(我相信是从 2013 年开始,在 2014 年将 lambda 表达式引入 Java 之前)。将我安装的 jGRASP 更新到当前版本解决了编译 lambda 表达式时查找主类的问题。

所以:是的,jGRASP 当前确实支持 lambda 表达式(至少到版本 2.0.1_09 为止)。但不,在 Java 中出现 lambda 表达式之前(版本 2.0.0_03 之后的某个时间),它并没有。

关于java - jGRASP 支持 Java lambda 表达式吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35238723/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com