コンバータの選択は、実行時に、以下のロジック(アルゴリズム)によって決まります。
ユーザが、親オブジェクトのコンバータによって子オブジェクトのコンバータを指定した場合、それに従います。
a.以外で、ユーザが、Javaの型(上りは入れ物の型、下りは入っているオブジェクトの型)に対してコンバータを指定した場合、それに従います。
a.およびb.に当てはまらない場合は、Javaの型に対するデフォルトのコンバータを使用します。詳細は、“デフォルトのルール”を参照してください。
デフォルトのルール
以下の表に、Java型に対応するデフォルトのコンバータの一覧を示します。
Java型 | コンバータ名 |
---|---|
boolean, Boolean | BooleanConverter |
byte, Byte | ByteConverter |
short, Short | ShortConverter |
int, Integer | IntegerConverter |
long, Long | LongConverter |
float, Float | FloatConverter |
double, Double | DoubleConverter |
char, Character | CharacterConverter |
String | StringConverter |
java.util.Date | DateConverter |
java.math.BigInteger | BigIntegerConverter |
java.math.BigDecimal | BigDecimalConverter |
任意の配列 | ArrayConverter |
java.util.Collectionのサブクラス | CollectionConverter |
java.util.Map のサブクラス | MapConverter |
java.lang.Throwableのサブクラス | ExceptionConverter |
上記に当てはまらないObject | 例外 |
Collection(Map)関連のデフォルトコンバータ
Collection(Map)関連のデフォルトコンバータは、Java型に応じたconcreteTypeを設定したCollectionConverter(MapConverter)です。
以下の表に、Collection(Map)関連のデフォルトコンバータの一覧を示します。
Java型 | concreteType | コンバータ名 |
---|---|---|
Collection | ArrayList | CollectionConverter |
List | ArrayList | CollectionConverter |
Map | LinkedHashMap | MapConverter |
Set | LinkedHashSet | CollectionConverter |
SortedMap | TreeMap | MapConverter |
SortedSet | TreeSet | CollectionConverter |
AbstractCollection | ArrayList | CollectionConverter |
AbstractList | ArrayList | CollectionConverter |
AbstractMap | LinkedHashMap | MapConverter |
AbstractSequentialList | LinkedList | CollectionConverter |
AbstractSet | LinkedHashSet | CollectionConverter |
ArrayList | ArrayList | CollectionConverter |
HashMap | HashMap | MapConverter |
HashSet | HashSet | CollectionConverter |
Hashtable | Hashtable | MapConverter |
IdentityHashMap | IdentityHashMap | MapConverter |
LinkedHashMap | LinkedHashMap | MapConverter |
LinkedHashSet | LinkedHashSet | CollectionConverter |
LinkedList | LinkedList | CollectionConverter |
Properties | Properties | MapConverter |
Stack | Stack | CollectionConverter |
TreeMap | TreeMap | MapConverter |
TreeSet | TreeSet | CollectionConverter |
Vector | Vector | CollectionConverter |
WeakHashMap | WeakHashMap | MapConverter |