我对使用新的 JDK 16 记录很感兴趣,但是当我尝试创建一个具有附加参数的新记录时,出现错误:
public record DrivePacket(Path drivePath, long driveSize) {
public DrivePacket(Path drivePath, long driveSize) {
this.drivePath = drivePath;
this.driveSize = driveSize;
}
public DrivePacket(Path drivePath, long driveSize, String ID) {
this(drivePath, driveSize);
this.id = id;
}
}
记录是否仅针对没有任何可变性的对象,或者它们可以随着时间的推移而扩展?
我对这种类型的类有一个新要求(特别是意外添加了 NFS 共享上的驱动器类型“远程”驱动器。
我发现自己试图想出一些方案,比如使用driveSize
来表示“远程”状态,但实际上这就是开发枚举的原因。
在这种情况下我该怎么办?我可以向构造函数添加选项并将它们存储在私有最终字段中吗?或者我应该创建一个DrivePacket
->的子类RemoteDrivePacket
,还是应该为它创建一个标记接口RemoteDrivePacket
?
开发人员打算使用的典型方式是什么?