21xrx.com
2024-12-22 20:21:57 Sunday
登录
文章检索 我的文章 写文章
Java中的生成器函数及应用场景
2023-06-18 00:47:52 深夜i     --     --
Java 生成器函数 Builder模式

Java中的生成器函数是指一种用于生成对象的函数,它是一种重载的构造函数,通过该函数可以定义对象的属性并返回该对象。这种方法可以有效地避免大量的set方法的重复调用,从而提升代码的可读性和简洁性。本文将介绍Java中生成器函数的基本用法,并给出一些实际应用场景。

生成器函数的基本用法很简单,只需要定义一个内部静态类Builder,将需要设置的属性作为Builder的实例变量,并且在Builder中定义一个build()方法来返回实际对象。具体代码如下:


public class Person{

  private final String name;

  private final int age;

  private final String gender;

  private Person(Builder builder)

    this.name = builder.name;

    this.age = builder.age;

    this.gender = builder.gender;

  

  public static class Builder{

    private String name;

    private int age;

    private String gender;

    public Builder setName(String name)

      this.name = name;

      return this;

    

    public Builder setAge(int age)

      this.age = age;

      return this;

    

    public Builder setGender(String gender)

      this.gender = gender;

      return this;

    

    public Person build(){

      return new Person(this);

    }

  }

}

在使用生成器函数时,只需先创建一个Builder对象,然后通过调用它的方法设置属性即可,最后调用build()方法获取实际对象。例如:


Person person = new Person.Builder()

        .setName("张三")

        .setAge(20)

        .setGender("男")

        .build();

使用生成器函数可以极大地简化代码,尤其是在属性比较多的情况下。此外,在一些需要复制对象的场景中,生成器函数也可以很好地发挥作用,如:


public class Person{

  private final String name;

  private final int age;

  private final String gender;

  public Person(Person other)

    this.name = other.name;

    this.age = other.age;

    this.gender = other.gender;

  

  public static class Builder

    ...

  

}

当然,生成器函数不仅仅适用于Java中的普通类,在很多其他场景也有类似的应用,例如使用Lombok的@Builder注解对实体类进行构建,或者使用Mybatis-Plus中的Wrapper构建查询条件等等。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复
    相似文章