【问题标题】:How to generate constructors, getters, setters, equals&hashcode, and toString at once?如何一次生成构造函数、getter、setter、equals&hashcode 和 toString?
【发布时间】:2021-11-12 21:43:57
【问题描述】:

假设我有一个数据类,我在其中编写了属性:

public class Person
{
    private String name;
    private int age;
}

现在,我想用一个生成过程创建以下内容:

public class Person
{
    private String name;
    private int age;

    public Person()
    {
    }

    public Person(String name, int age)
    {
        this.name = name;
        this.age = age;
    }

    public String getName()
    {
        return name;
    }

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

    public int getAge()
    {
        return age;
    }

    public void setAge(int age)
    {
        this.age = age;
    }

    @Override
    public boolean equals(Object o)
    {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        Person person = (Person) o;
        return age == person.age && Objects.equals(name, person.name);
    }

    @Override
    public int hashCode()
    {
        return Objects.hash(name, age);
    }

    @Override
    public String toString()
    {
        return "Person{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}

我知道我可以自动生成空构造函数,然后自动生成 all args 构造函数,然后自动生成 getter 和 setter,然后自动生成 equals 和 hashcode,然后自动生成 toString。

我为我创建的每一个数据类都这样做,它变得越来越乏味。

【问题讨论】:

  • 我已经尝试过 Kirill Korgov 的插件“Generatable”,但这也添加了一个我不想要的生成器。
  • record 怎么样?
  • 我去看看!谢谢!

标签: java intellij-idea getter-setter auto-generate


【解决方案1】:

有一个依赖调用Lombok,你可以在类的顶部添加注释,它可以自动为你创建getter和setter、构造函数以及toString和hashCode方法。在您的情况下,此代码将自动为您添加 getter、setter、toString、equals 和 hashcode、builder、..

@Getter 
@Setter 
@NoArgsConstructor // <--- THIS is it
@ToString
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode
public class Person
{
    private String name;
    private int age;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-07-30
    • 1970-01-01
    • 1970-01-01
    • 2011-06-24
    • 2017-03-05
    • 2011-07-10
    • 1970-01-01
    相关资源
    最近更新 更多