@Target(value={FIELD,ANNOTATION_TYPE}) @Retention(value=RUNTIME) @Documented public @interface CsvNumberFormat
対応する型は以下の通りです。
プリミティブ型に対して読み込む際に、CSVのカラムの値が空の場合、それぞれのプリミティブ型の初期値が設定されます。
整数型の場合は 0 が、小数型の場合は 0.0 が設定されます。
pattern()
で、書式を指定します。
locale()
で、ロケールを指定します。
currency()
で、通貨コード(ISO-4217コード)を指定します。
@CsvBean
public class SampleCsv {
@CsvColumn(number=1)
@CsvNumberFormat(pattern="#,##0")
private int number;
@CsvColumn(number=2, label="給与")
@CsvNumberFormat(pattern="¤¤ #,##0.0000", locale="ja_JP", currency="USD")
private Double salary;
// getter/setterは省略
}
public abstract String pattern
DecimalFormat
で解釈可能な値を指定する必要があります。
public abstract boolean lenient
例えば、 12.51 と小数を整数型にマッピングする場合、13と丸めの補正が行われます。
また、123,456.0ab のように、途中から数値以外の文字が出現した場合、それまでの文字 123,456.0 を抽出して処理が行われます。
public abstract String currency
public abstract RoundingMode rounding
詳細は、RoundingModeのJavaDocを参照してください。
public abstract int precision
属性pattern()
を指定しない場合に有効になります。
主に小数の場合に有効桁数を揃える際に利用します。
例えば、precision=4で、文字列 123.45 を double型にマッピングする場合、結果は 123.4 として読み込まれます。
丸めの方法は、属性rounding()
で指定します。
public abstract String message
{key}の書式の場合、プロパティファイルから取得した値を指定できます。
このメッセージは、文字列を数値型にパースする際に失敗したときに適用されるメッセージに使用します。
pattern()
の値です。指定されている場合のみ設定されます。CellProcessor
に基づいたメッセージが出力されます。Copyright © 2022 mygreen. All rights reserved.