繁体   English   中英

Eclipse java 编辑器将生成的(Groovy)方法标记为未定义

[英]Eclipse java editor marking generated (Groovy) methods as undefined

Eclipse 2020-03 is indicating that generated Groovy methods do not exist when they are referenced inside a Java class.

我在 Eclipse 2020-03 中创建了一个新的 Groovy 项目来说明这一点。 我没有以任何方式从默认值修改项目。

我的 Groovy object:

class MyPogo {
    String id
}

在 Groovy 脚本中访问它

MyPogo g = new MyPogo()
g.setId("foo")
println(g.getId())

在 Java 中访问它:

public class DemoAccessor {

    public static void main(final String[] args) {
        MyPogo p = new MyPogo();
        p.setId("foo");
        System.out.println(p.getId());
    }
}

在 Java 透视图中,setId 和 getId 都带有红色下划线,其中显示的是装订线消息

"The method setId(String) is undefined for the type MyPogo"

为 getId(String) 提供了类似的消息。

当在 Eclipse 中作为 Java 应用程序运行时,groovy 脚本和 DemoAccessor 都会将“foo”打印到控制台。

为什么 Eclipse 不能识别这些生成的方法? 我需要在 eclipse.ini 中添加 -javaagent:... 吗? 是否有需要调整的首选项?

.project 包含

...
    <natures>
        <nature>org.eclipse.jdt.groovy.core.groovyNature</nature>
        <nature>org.eclipse.m2e.core.maven2Nature</nature>
        <nature>org.eclipse.jdt.core.javanature</nature>
    </natures>
...

.classpath 包含

...
    <classpathentry exported="true" kind="con" path="GROOVY_SUPPORT"/>
    <classpathentry exported="true" kind="con" path="GROOVY_DSL_SUPPORT"/>
...

问题视图问题视图

Package 资源管理器包资源管理器

错误视图在此处输入图像描述

这应该可以工作,即使在默认的 package 中也是如此。

在此处输入图像描述

如果您查看帮助 > 关于 Eclipse... > 安装详细信息 > 插件,Java 开发工具核心 (org.eclipse) 显示的版本是什么。 这是 GDT 修补以将其编译器插入 JDT 的关键捆绑包。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM