Можно ли использовать функцию IntelliJ «Анализ потока данных сюда» с Java Lombok?

Недавно я провел эксперимент, чтобы увидеть, как мы можем использовать Lombok для сокращения шаблонов в нашем коде.

Проблема: при создании простого класса данных с помощью построителя с помощью аннотаций Lombok в IntelliJ IDEA я не могу щелкнуть поле правой кнопкой мыши, а затем выбрать «Анализ потока данных сюда».

Это использует последний плагин IntelliJ Lombok. IntelliJ Ultimate 2019.2.3.

Есть ли какое-то решение для этого или это просто не поддерживается?

Пример 1 - без ломбока:

public class Person {

    private String name;
    private int age;

    private Person() {

    }

    public Person(Builder builder) {
        name = builder.name;
        age = builder.age;
    }

    public String getName() {
        return name;
    }

    public int getAge() {
        return age;
    }

    public static class Builder {
        private String name;
        private int age;

        public Builder name(String val) {
            this.name = val;
            return this;
        }

        public Builder age(int val) {
            this.age = val;
            return this;
        }

        public Person build() {
            return new Person(this);
        }
    }
}
public class Main {

    public static void main(String[] args) {
        Person person = new Person.Builder().name("tom").age(3).build();
    }
}

С приведенным выше кодом, когда я щелкаю правой кнопкой мыши переменную «имя» и выбираю анализировать поток данных здесь, я могу видеть поток данных. Как показано на снимке экрана: введите здесь описание изображения

Пример 2 - с Ломбоком:

import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;

@NoArgsConstructor
@Builder
@Getter
public class Person {
    private String name;
    private int age;
}
public class Main {
    public static void main(String[] args) {
        Person person = Person.builder().name("tom").age(3).build();
    }
}

В приведенном выше примере кода при выборе «анализировать поток данных сюда» в поле имени будет отображаться имя переменной, но без дерева для развертывания, как показано на снимке экрана.введите здесь описание изображения


person herdsothom    schedule 14.10.2019    source источник
comment
здесь отлично работает. Пожалуйста, добавьте к вопросу свою версию IDEA и тестовый код.   -  person Kevin    schedule 14.10.2019
comment
@Kevin Я обновил пример   -  person herdsothom    schedule 14.10.2019
comment
IntelliJ может анализировать только исходный код. Ломбок не генерирует промежуточный код, поэтому я думаю, что ответ No.   -  person Kevin    schedule 14.10.2019


Ответы (1)


«Анализ потока данных сюда» не будет работать со сгенерированным кодом, предоставленным аннотациями Lombok.

person Olga Klisho    schedule 15.10.2019