【发布时间】:2021-02-04 15:43:59
【问题描述】:
Java 14 带来了记录,这是许多函数式语言中的一个重要补充:
Java:
public record Vehicle(String brand, String licensePlate) {}
机器学习:
type Vehicle =
{
Brand : string
LicensePlate : string
}
在 ML 语言中,可以通过创建一个更改了一些值的副本来“更新”记录:
let u =
{
Brand = "Subaru"
LicensePlate = "ABC-DEFG"
}
let v =
{
u with
LicensePlate = "LMN-OPQR"
}
// Same as:
let v =
{
Brand = u.Brand
LicensePlate = "LMN-OPQR"
}
这在 Java 14 中可行吗?
【问题讨论】:
-
转到 Java 16。它们有一些不错的变化。答案是否定的
-
很遗憾,答案是:还没有。
-
@texasbruce 不要使用 Lombok。它在引擎盖下做了非常讨厌的把戏
-
本探索性文档中描述了“withers”的概念:Functional transformation of immutable objects
-
@texasbruce 只是不要。你让你的程序不那么面向未来。
标签: java java-14 java-record