analytically / innerbuilder

IntelliJ IDEA plugin which generates an inner builder class

Home Page:https://plugins.jetbrains.com/plugin/7354-innerbuilder/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Plugin is not compatible with Java records

jrumbinas opened this issue · comments

Here's a plugin output for record TestRecord(String a){}:

record TestRecord(String a){

    private TestRecord(Builder builder) {
        a = builder.a;
    }

    public static Builder builder(TestRecord copy) {
        Builder builder = new Builder();
        builder.a = copy.getA();
        return builder;
    }

    public static final class Builder {
        private String a;

        private Builder() {
        }

        public static Builder builder() {
            return new Builder();
        }

        public Builder withA(String val) {
            a = val;
            return this;
        }

        public TestRecord build() {
            return new TestRecord(this);
        }
    }
}

Two issues here:

  1. Record constructor needs to pass values via constructor (e.g. this(builder.a))
  2. Copy constructor is using copy.getA() instead of copy.a()