Class RecordUtil

java.lang.Object
cloud.opencode.base.core.reflect.RecordUtil

public final class RecordUtil extends Object
Record Utility Class - Java Record type operations Record 工具类 - Java Record 类型操作

Provides utilities for working with Java Record types (JDK 16+).

提供 Java Record 类型(JDK 16+)的操作工具。

Features | 主要功能:

  • Record type detection - Record 类型检测
  • Component access (names, types, values) - 组件访问(名称、类型、值)
  • Record to/from Map conversion - Record 与 Map 转换
  • Immutable copy with modifications - 不可变复制(带修改)

Usage Examples | 使用示例:

// Check if record - 检查是否为 Record
boolean isRecord = RecordUtil.isRecord(User.class);

// Record to Map - Record 转 Map
Map<String, Object> map = RecordUtil.toMap(userRecord);

// Copy with modification - 带修改复制
User updated = RecordUtil.copyWith(user, "name", "NewName");

Security | 安全性:

  • Thread-safe: Yes (stateless) - 线程安全: 是 (无状态)
  • Null-safe: Partial (throws on null record) - 空值安全: 部分 (null 抛异常)

Performance | 性能特性:

  • Time complexity: O(n) where n = record components - O(n), n为记录组件数
  • Space complexity: O(n) for component array - 组件数组 O(n)
Since:
JDK 25, opencode-base-core V1.0.0
Author:
Leon Soo www.LeonSoo.com
See Also:
  • Method Details

    • isRecord

      public static boolean isRecord(Class<?> clazz)
      Checks if the class is a Record type 检查类是否为 Record 类型
    • isRecord

      public static boolean isRecord(Object obj)
      Checks if the object is a Record instance 检查对象是否为 Record 实例
    • getComponents

      public static RecordComponent[] getComponents(Class<?> recordClass)
      Gets all components of the Record 获取 Record 的所有组件
    • getComponentNames

      public static List<String> getComponentNames(Class<?> recordClass)
      Gets the list of Record component names 获取 Record 组件名列表
    • getComponentTypes

      public static Map<String,Class<?>> getComponentTypes(Class<?> recordClass)
      Gets the Record component type mapping 获取 Record 组件类型映射
    • getComponentValue

      public static <T> T getComponentValue(Object record, String componentName)
      Gets the Record component value 获取 Record 组件值
    • toMap

      public static Map<String,Object> toMap(Object record)
      Converts a Record to Map Record 转 Map
    • fromMap

      public static <T extends Record> T fromMap(Map<String,?> map, Class<T> recordClass)
      Converts a Map to Record Map 转 Record
    • copyWith

      public static <T extends Record> T copyWith(T record, String componentName, Object newValue)
      Copies a Record and modifies the specified component 复制 Record 并修改指定组件
    • copyWith

      public static <T extends Record> T copyWith(T record, Map<String,Object> changes)
      Copies a Record and modifies multiple components 复制 Record 并修改多个组件
    • equals

      public static boolean equals(Object record1, Object record2)
      Compares two Records for equality (based on components) 比较两个 Record 是否相等(基于组件)
    • getComponentCount

      public static int getComponentCount(Class<?> recordClass)
      Gets the Record component count 获取 Record 组件数量
    • hasComponent

      public static boolean hasComponent(Class<?> recordClass, String componentName)
      Checks if the Record has the specified component 检查 Record 是否有指定组件
    • getComponentGenericType

      public static Type getComponentGenericType(Class<?> recordClass, String componentName)
      Gets the generic type of a component 获取组件的泛型类型