java记录的引入为开发人员提供了一个新的数据结构,简化了数据对象的处理和创建。记录处理通过最新添加的记录模式和嵌套模式变得更加高效和动态。
首先,让我们回顾一下基础知识。 - 记录是传统的轻量级替代品,作为内置访问器方法数据的透明载体。其主要目的是保存数据,而不是实现复杂的行为。
然而,随着java 传统instanceoff引入21中记录模式-and-cast的习惯已经简化。我们现在可以使用记录模式来组合这两个步骤,而不是检查对象是否是特定的记录实例,然后将其转换为使用其组件。例如,不要这样写:
if (obj instanceof string) { string name = (string)obj; ... use name ... } in java 21, we can simply write: if (obj instanceof string name) { ... use name ... }
由于类型模式,代码更简单,不容易出错 string s 用于与 obj 匹配模式变量的值 s 初始化已转化为已转化 string 的 obj 的值。
此外,java 21还引入了嵌套模式,允许匹配和分解更复杂的对象图,如嵌套记录。假设我们有以下声明:
record bankaccount(string accountnumber, string accountholder, double balance) {} record transaction(string transactionid, double amount, string type, string timestamp) {} record bankstatement(list<transaction> transactions, bankaccount account) {} </transaction>
我们现在可以用嵌套记录模式来计算 bankstatement 对象的总交易金额如下:
static double calculatetotaltransactions(bankstatement statement) { if (statement instanceof bankstatement(list<transaction> transactions, bankaccount account)) { double total = 0; for (transaction t : transactions) { total += t.amount; } return total; } return 0; } </transaction>
在这个例子中,外部模式 bankstatement(list transactions, bankaccount account) 包含嵌套模式 bankaccount account,用于从记录 bankstatement 提取帐户组件。这允许更简单和高效的代码,因为我们不需要单独处理每个单独的子模式匹配。
立即学习“Java免费学习笔记(深入);
记录模式的另一个有用功能是类型推断。当记录模式命名为通用记录类而不提供任何类型参数时,编译器在使用该模式时会自动推断类型参数。这简化了代码,如以下示例所示:
record MyBankAccount<l extends limitfactor m money>(L limitFactor, M money){}; static void recordInference(MyBankAccount<moneylimit amount> bankaccount){ switch(bankaccount){ case MyBankAccount(var moneylimit, var amount) -> System.out.println("Messages: Inferred that account has balance " + amount + " with a limit of " + moneylimit); case MyBankAccount(var moneylimit, null)-> System.out.println("Messages: Inferred that account has a balance of zero with a limit of " + moneylimit); ... } } </moneylimit></l>
该功能还支持嵌套记录模式,使代码更加简洁可读。
最后,记录模式在 java 21 中与 switch 表达式和句子完全集成。但,需要注意的是,在 switch 在句子中使用记录模式时,switch 块必须详细说明。这意味着必须在那里 switch 选择器表达式的所有可能值都考虑在块中。通过分析使用的模式类型来确定记录模式。例如,case 标签 case bar b 将匹配 bar 类型值和 bar 所有可能的子类型。
总之,理解和掌握 java 21 中间的记录模式为任何准备都准备好了 java se 21 开发人员认证的人至关重要。这些新功能允许更简化和有效的记录处理,使其成为 java 开发人员的基本技能。
以上是Java SE 准备开发人员认证 Java Record 详细介绍考试目标,更多请关注图灵教育其他相关文章!