Skip to content

[FEATURE]The @Builder annotation supports the implementation of java.io.Serializable or custom interfaces - #3874

Open
290044632 wants to merge 3 commits into
projectlombok:masterfrom
290044632:master
Open

[FEATURE]The @Builder annotation supports the implementation of java.io.Serializable or custom interfaces#3874
290044632 wants to merge 3 commits into
projectlombok:masterfrom
290044632:master

Conversation

@290044632

Copy link
Copy Markdown

Description for feature

The @builder annotation supports the implementation of java.io.Serializable or specified interfaces. When entity classes are used for serialization in an RPC framework, it is necessary to implement the java.io.Serializable interface.

Example

  • Java Code
import lombok.Builder;
import lombok.Getter;
import lombok.Setter;

@Getter
@Setter
@Builder(serializable = true)
public class LombokDemo implements Serializable{
    private String name;
}
  • Java Class
import java.io.Serializable;
import lombok.Generated;

public class LombokDemo implements Serializable{
    private String name;

    @Generated
    LombokDemo(String name) {
        this.name = name;
    }

    @Generated
    public static LombokDemoBuilder builder() {
        return new LombokDemoBuilder();
    }

    @Generated
    public String getName() {
        return this.name;
    }

    @Generated
    public void setName(String name) {
        this.name = name;
    }

    @Generated
    public static class LombokDemoBuilder implements Serializable {
        @Generated
        private String name;

        @Generated
        LombokDemoBuilder() {
        }

        @Generated
        public LombokDemoBuilder name(String name) {
            this.name = name;
            return this;
        }

        @Generated
        public LombokDemo build() {
            return new LombokDemo(this.name);
        }

        @Generated
        public String toString() {
            return "LombokDemo.LombokDemoBuilder(name=" + this.name + ")";
        }
    }
}

@290044632
290044632 marked this pull request as draft September 3, 2025 08:09
@290044632
290044632 marked this pull request as ready for review September 3, 2025 08:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant