Class CsvRecord

java.lang.Object
io.leandev.appfuse.csv.CsvRecord
All Implemented Interfaces:
Record

public class CsvRecord extends Object implements Record

CSV 資料記錄

封裝單筆 CSV 資料,提供名稱存取與類型轉換功能。 實作框架定義的 Record 介面,不暴露底層實作(Jackson CSV)類型。

使用範例

// 名稱存取
String username = record.getAsString("username");
Integer age = record.getAsInteger("age");
BigDecimal salary = record.getAsBigDecimal("salary");

// 索引存取
String value = record.getAsString(0);
Since:
1.0
  • Constructor Details

    • CsvRecord

      protected CsvRecord(Map<String,String> data, List<String> headers)
      建構 CsvRecord
      Parameters:
      data - CSV 資料(Map 格式)
      headers - Header 欄位列表
  • Method Details

    • indexOf

      public int indexOf(String key)
      根據欄位名稱取得索引位置
      Specified by:
      indexOf in interface Record
      Parameters:
      key - 欄位名稱
      Returns:
      索引位置,若欄位不存在則回傳 -1
    • getValue

      public <T> T getValue(int index, Class<T> type)
      取得指定索引的值並轉換為指定型別
      Specified by:
      getValue in interface Record
      Type Parameters:
      T - 型別參數
      Parameters:
      index - 欄位索引
      type - 目標型別
      Returns:
      轉換後的值
    • getValue

      public Object getValue(int index)
      取得指定索引的原始值(Object)
      Specified by:
      getValue in interface Record
      Parameters:
      index - 欄位索引
      Returns:
      原始值(String)
    • size

      public int size()
      取得資料記錄的欄位數量
      Specified by:
      size in interface Record
      Returns:
      欄位數量
    • getValues

      public List<String> getValues()
      取得所有欄位值(按 Header 順序)
      Specified by:
      getValues in interface Record
      Returns:
      欄位值列表
    • get

      public String get(String key)
      根據欄位名稱取得原始值
      Parameters:
      key - 欄位名稱
      Returns:
      原始值(String)
    • getAs

      public <T> T getAs(String key, Class<T> type)
      根據欄位名稱取得值並轉換為指定型別
      Type Parameters:
      T - 型別參數
      Parameters:
      key - 欄位名稱
      type - 目標型別
      Returns:
      轉換後的值