Java学习笔记-@Data和@Getter,@Setter区别

使用@Getter和@Setter

@Getter
@Setter
public class Student {
   public String name;
   public int age;
}

编译后如下:

public class Student {
    public String name;
    public int age;
 
    public Student() {
    }
 
    public String getName() {
        return this.name;
    }
 
    public int getAge() {
        return this.age;
    }
 
    public void setName(String name) {
        this.name = name;
    }
 
    public void setAge(int age) {
        this.age = age;
    }
}

使用@Data:

@Data
public class Student {
   public String name;
   public int age;
}

编译后的文件如下:

public class Student {
    public String name;
    public int age;
 
    public Student() {
    }
 
    public String getName() {
        return this.name;
    }
 
    public int getAge() {
        return this.age;
    }
 
    public void setName(String name) {
        this.name = name;
    }
 
    public void setAge(int age) {
        this.age = age;
    }
 
    public boolean equals(Object o) {
        if (o == this) {
            return true;
        } else if (!(o instanceof Student)) {
            return false;
        } else {
            Student other = (Student)o;
            if (!other.canEqual(this)) {
                return false;
            } else {
                Object this$name = this.getName();
                Object other$name = other.getName();
                if (this$name == null) {
                    if (other$name == null) {
                        return this.getAge() == other.getAge();
                    }
                } else if (this$name.equals(other$name)) {
                    return this.getAge() == other.getAge();
                }
 
                return false;
            }
        }
    }
 
    protected boolean canEqual(Object other) {
        return other instanceof Student;
    }
 
    public int hashCode() {
        int PRIME = true;
        int result = 1;
        Object $name = this.getName();
        int result = result * 59 + ($name == null ? 43 : $name.hashCode());
        result = result * 59 + this.getAge();
        return result;
    }
 
    public String toString() {
        return "Student(name=" + this.getName() + ", age=" + this.getAge() + ")";
    }
}

从以上编译文件可看出@Data和@Getter,@Setter的区别,@Data注解包含了@Getter@Setter,且有toString(),equals等方法

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: @Data、@Setter、@Getter是Lombok库中的注解。 @Data注解是一个组合注解,包含了@ToString、@EqualsAndHashCode、@Getter和@Setter等注解。使用@Data注解可以省略生成gettersetter方法、toString方法、hashCode方法和equals方法的样板代码。 @Setter注解用于生成setter方法,通过使用@Setter注解可以省略生成setter方法的样板代码。 @Getter注解用于生成getter方法,通过使用@Getter注解可以省略生成getter方法的样板代码。 ### 回答2: @Data、@Setter、@GetterJava语言中常用的注解之一,用于自动生成Java Bean类的gettersetter方法。 @Data注解是一个复合注解,它包含了@Setter和@Getter注解。使用@Data注解可以简化代码,自动生成类的gettersetter、equals、hashCode和 toString方法。这样可以避免手动编写这些常用方法,提高代码的可读性和可维护性。 @Setter注解用于自动生成属性的setter方法。使用@Setter注解后,编译器会自动生成setter方法,从而简化了代码编写。setter方法用于修改类的属性值,通过传入参数来改变属性的值。使用@Setter注解可以避免手动编写大量类似的setter方法,提高代码的效率。 @Getter注解用于自动生成属性的getter方法。使用@Getter注解后,编译器会自动生成getter方法,从而简化了代码编写。getter方法用于获取类的属性值,用于将类的属性值传递给其他方法或对象。使用@Getter注解可以避免手动编写大量类似的getter方法,提高代码的效率。 综上所述,@Data、@Setter、@GetterJava语言中常用的注解,用于自动生成Java Bean类的gettersetter方法。使用这些注解可以简化代码,提高代码的可读性和可维护性。 ### 回答3: @Data、@Setter、@GetterJava 中的注解,用于简化代码的编写。它们是 Lombok(简化 Java 开发工作的工具)中提供的注解之一。 @Data 注解是一个组合注解,它为类自动生成了一系列的方法,包括构造方法、toString、hashCode、equals 等。使用 @Data 注解可以省去手动编写这些常用方法的麻烦,从而提高开发效率。 @Setter 注解用于自动生成属性的 setter 方法。在类的属性上使用 @Setter 注解后,Lombok 会自动生成对应的 setter 方法,用于给属性赋值。该注解可以帮助开发人员简化代码、减少冗余。 @Getter 注解用于自动生成属性的 getter 方法。在类的属性上使用 @Getter 注解后,Lombok 会自动生成对应的 getter 方法,用于获取属性的值。使用 @Getter 注解可以简化代码,并提高代码的可读性。 综上所述,@Data、@Setter、@Getter 是 Lombok 中提供的注解,它们能够帮助开发人员简化代码,提高开发效率。@Data 注解为类自动生成一系列常用方法,@Setter 注解用于自动生成属性的 setter 方法,@Getter 注解用于自动生成属性的 getter 方法。通过使用这些注解,可以减少冗余代码的编写,提高代码的可读性和可维护性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值