Eclipse java отмечает сгенерированные (Groovy) методы редактора как неопределенные - PullRequest
0 голосов
/ 07 мая 2020

Eclipse 2020-03 указывает, что сгенерированные Groovy методы не существуют, если на них есть ссылки внутри класса Java.

Я создал новый проект Groovy в Eclipse 2020-03 для иллюстрации этот. Я никоим образом не изменял проект по умолчанию.

Мой Groovy объект:

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

При запуске в качестве приложения Java внутри Eclipse и сценарий groovy, и DemoAccessor выводят на консоль 'foo'.

Почему не Eclipse распознать эти сгенерированные методы? Мне нужно добавить -javaagent: ... в eclipse.ini? Есть ли предпочтение, которое мне нужно настроить?

.project contains

...
    <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"/>
...

Просмотр проблем Problems view

Проводник пакетов Package Explorer

Просмотр ошибок enter image description here

1 Ответ

0 голосов
/ 08 мая 2020

Это должно работать даже в пакете по умолчанию.

enter image description here

Если вы посмотрите в Help> About Eclipse ...> Installation Details> Plug -ins, какая версия отображается для Java Ядро средств разработки (org.eclipse.jdt.core)? Это критический пакет, который GDT исправляет, чтобы втиснуть свой компилятор в JDT.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...