首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jGRASP支持Java表达式吗?

jGRASP支持Java表达式吗?
EN

Stack Overflow用户
提问于 2016-02-06 07:56:44
回答 1查看 80关注 0票数 1

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

没有在文件中找到主要方法、applet或MIDlets

示例程序:

代码语言:javascript
复制
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教程中计算器示例的缩减版本。如果我使用整个Calculator程序,那么同样的事情会发生:编译但是找不到要运行的主要方法;但是使用lambda表达式注释掉行,它就运行得很好。同样,对于我正在处理的另一个程序,使用lambda表达式编译的任何一行都会导致程序找不到主方法。

这是jGRASP,或者我的Java,或者我的理解,或者其他的问题吗?我怎么才能解决这个问题?

编辑:更多的几个数据点:如果我有jGRASP显示一个jGRASP图,则带有lambda表达式的类被唯一地标记为"External或Interface“(没有lambda表达式,它通常被标记为"Project”)。

如果我试图通过jGRASP创建一个JAR文件,使用正则表达式,jGRASP最初无法找到主类;但是一旦我指定它,JAR类就会生成,并且我可以在jGRASP之外成功地运行JAR类,这是我想要的行为。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-06 15:34:31

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

因此:,jGRASP目前确实支持lambda表达式(至少通过2.0.1_09版本是这样)。但是没有,它没有在Java表达式出现之前(在2.0.0_03版本之后的某个时候)出现。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35238723

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档