Class ObjectCopier

java.lang.Object
io.leandev.appfuse.bean.ObjectCopier

public class ObjectCopier extends Object

ObjectCopier

複製物件或複製物件屬性

  • Constructor Summary

    Constructors
    Constructor
    Description
     
     
    ObjectCopier(Converters converters, tools.jackson.databind.ObjectMapper objectMapper)
     
    ObjectCopier(tools.jackson.databind.ObjectMapper objectMapper)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    applyDefaults(Object target, Object source, String... excludes)
    從來源套用預設值到目標(僅針對 null 屬性) @SuppressWarnings("unchecked") 在此處是安全的,因為:
    void
    applyDefaultsIgnoreCase(Object target, Object source, String... excludes)
    從來源套用預設值到目標(不區分大小寫的鍵匹配,僅針對 null 屬性) @SuppressWarnings("unchecked") 在此處是安全的,因為:
    <T> T
    clone(T obj)
    使用 Jackson ObjectMapper 複製物件 @SuppressWarnings("unchecked") 在此處是安全的,因為:
    void
    copy(Object target, Object source, String... excludes)
    從來源複製屬性到目標 @SuppressWarnings("unchecked") 在此處是安全的,因為:
    void
    copyIgnoreCase(Object target, Object source, String... excludes)
    從來源複製屬性到目標(不區分大小寫的鍵匹配) @SuppressWarnings("unchecked") 在此處是安全的,因為:

    Methods inherited from class Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • ObjectCopier

      public ObjectCopier()
    • ObjectCopier

      public ObjectCopier(Converters converters)
    • ObjectCopier

      public ObjectCopier(tools.jackson.databind.ObjectMapper objectMapper)
    • ObjectCopier

      public ObjectCopier(Converters converters, tools.jackson.databind.ObjectMapper objectMapper)
  • Method Details

    • clone

      public <T> T clone(T obj)

      使用 Jackson ObjectMapper 複製物件 @SuppressWarnings("unchecked") 在此處是安全的,因為:

      • 複製品是從與原始物件相同的類別建立的
      • 類型 T 保證與物件的執行時類型相符
    • copy

      public void copy(@NonNull Object target, @NonNull Object source, String... excludes)

      從來源複製屬性到目標 @SuppressWarnings("unchecked") 在此處是安全的,因為:

      • instanceof Map 檢查確保物件是 Map 實例
      • 由於類型擦除,泛型參數無法在執行時驗證
      • 邏輯保證所有 Map 操作都使用 Map<String, Object>
    • copyIgnoreCase

      public void copyIgnoreCase(@NonNull Object target, @NonNull Object source, String... excludes)

      從來源複製屬性到目標(不區分大小寫的鍵匹配) @SuppressWarnings("unchecked") 在此處是安全的,因為:

      • instanceof Map 檢查確保物件是 Map 實例
      • 由於類型擦除,泛型參數無法在執行時驗證
      • 邏輯保證所有 Map 操作都使用 Map<String, Object>
    • applyDefaults

      public void applyDefaults(@NonNull Object target, @NonNull Object source, String... excludes)

      從來源套用預設值到目標(僅針對 null 屬性) @SuppressWarnings("unchecked") 在此處是安全的,因為:

      • instanceof Map 檢查確保物件是 Map 實例
      • 由於類型擦除,泛型參數無法在執行時驗證
      • 邏輯保證所有 Map 操作都使用 Map<String, Object>
    • applyDefaultsIgnoreCase

      public void applyDefaultsIgnoreCase(@NonNull Object target, @NonNull Object source, String... excludes)

      從來源套用預設值到目標(不區分大小寫的鍵匹配,僅針對 null 屬性) @SuppressWarnings("unchecked") 在此處是安全的,因為:

      • instanceof Map 檢查確保物件是 Map 實例
      • 由於類型擦除,泛型參數無法在執行時驗證
      • 邏輯保證所有 Map 操作都使用 Map<String, Object>