Можно ли использовать функцию анализа потока данных в IntelliJ с Java Lombok? - PullRequest
1 голос
/ 14 октября 2019

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

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

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

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

Пример 1 - без lombok:

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();
    }
}

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

Пример 2 - с Lombok:

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();
    }
}

В приведенном выше примере кода выберите «анализировать поток данных вздесь 'в поле имени будет отображаться имя переменной, но без развертываемого дерева, как показано на скриншоте. enter image description here

1 Ответ

1 голос
/ 15 октября 2019

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

...