innerbuilder icon indicating copy to clipboard operation
innerbuilder copied to clipboard

Plugin is not compatible with Java records

Open jrumbinas opened this issue 2 years ago • 0 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()

jrumbinas avatar Jun 30 '23 14:06 jrumbinas