====================================== 注意事項 ====================================== --------------------------------------------------- ExcelとJava間で数値をマッピングする際の注意事項 --------------------------------------------------- ExcelとJavaとでは表現可能な数値の有効桁数がなどが異なるため、桁落ちなどのため注意が必要です。 * 文字列型のセルの値をJavaの数値型にマッピングする場合、Javaで表現可能な最大値/最小値を超えてマッピングした場合、エラーとなります。 * ver0.5以降の場合、``com.gh.mygreen.xlsmapper.cellconvert.TypeBindException`` が発生します。 * ver0.4以前の場合、オーバーフローを起こして読み込まれます。 例えば、shortに最大値+1(32768)がセルに設定されている場合、オーバーフローを起こして、``-32768`` として読み込まれます。 * Excelでは有効桁数が15桁であるため、Javaのlong型など15桁を超える表現が可能な数値を書き込んだ場合、数値が丸められます。 * 例えば、long型の19桁の数値 ``1234567890123456789`` を書き込んだ場合、16桁以降の値が丸められ ``1234567890123450000`` として書き込まれます。 * Excelの仕様については、`Excel の仕様と制限 `_ を参照してください。 --------------------------------------------------- アノテーションの定義位置 --------------------------------------------------- XlsMapperでは、フィールドとメソッドの両方にアノテーションを付与することができます。 アノテーションは、フィールドまたはフィールドに対するアクセッサメソッドに定義可能です。 読み込みと書き込みの両方を行うならば、フィールドに定義することをお薦めします。 * クラスの場合、全てのアクセスレベル(public/protected/private/なし)に付与したアノテーションが有効になります。 * ただし、継承元の親クラスに定義されたものは無効です。 * 内部クラスとして定義する場合、静的な ``static class`` で定義する必要があります。 * フィールドの場合、全てのアクセスレベル(public/protected/privte/なし)に付与したアノテーションが有効になります。 * メソッドの場合、publicのみ有効になります。 * メソッドに付与した場合、読み込み時はsetterに付与したアノテーションを用います。 書き込み時は、getterに付与したアノテーションを用います。 * フィールドと対応するメソッド(getter/setter)の両方にアノテーションを付与した場合、メソッドに付与したアノテーションが優先されます。 * 読み込み時と書き込み時の両方を行うことを考慮すると、フィールドにアノテーションを付与することをお薦めします。 .. note:: アクセッサメソッドを動的に生成する `Lombok `_ を利用する場合は、フィールドに定義してください。