记录类(Java16)
是一种用来存放不可变的数据的类型,其存放的数据默认 final 类型,即不可更改
记录类不可继承,可以实现接口
在Java17后,记录类可以作为局部内部类编写
定义
使用关键字 record 创建一个记录类型,此时和类不同,需要加一个小括号,里面存放该记录包含的所有属性:
public record Commodity(int id,String name,String addresss){
}
记录类型与前面说的枚举类型类似,本质上在编译之后也是一个普通的类,不过是final且继承自java.lang.Record抽象类的,它会在编译时,会自动编译出 public get、 hashcode 、equals、toString 等方法。
创建
依然使用 new 创建,是有参构造
Commodity commodity = new Commodity(1,"电脑","北京市");
sout(commodity); //自动调用toString
使用
可以在定义时重载方法