ユーティリティクラス
こんな感じ?
package sample.covert; import java.sql.Timestamp; import java.util.Calendar; import java.util.GregorianCalendar; import java.util.HashSet; import java.util.Set; /** * Stringとの相互変換にかんするUtil * <ol> * <li>クラス名をあらわすSet * <li>convertStringSetへの追加 * <li>convertメソッド * <li>convertへの処理追加 * </ol> * をセットで追加することにより、他の型も対応可能とする * */ public class ConvertConst { private static final String INDENT_METHOD_FIRST = "\t\t\t"; private static final String INDENT_METHOD_SECOND = "\t\t\t\t"; /** * Integerと判断できる文字列のSet */ public static final Set<String> INTEGER_TYPE_SET = new HashSet<String>(); static { INTEGER_TYPE_SET.add(Integer.class.getName()); INTEGER_TYPE_SET.add(Integer.class.getSimpleName()); } /** * int と判断できる文字列のSet */ public static final Set<String> INT_TYPE_SET = new HashSet<String>(); static { INT_TYPE_SET.add(Integer.TYPE.getSimpleName()); INT_TYPE_SET.add(Integer.TYPE.getName());//今の所無駄だけど・・・ } /** * Shortと判断できる文字列のSet */ public static final Set<String> SHORT_OBJECT_TYPE_SET = new HashSet<String>(); static { SHORT_OBJECT_TYPE_SET.add(Short.class.getName()); SHORT_OBJECT_TYPE_SET.add(Short.class.getSimpleName()); } /** * short と判断できる文字列のSet */ public static final Set<String> SHORT_TYPE_SET = new HashSet<String>(); static { SHORT_TYPE_SET.add(Short.TYPE.getSimpleName()); SHORT_TYPE_SET.add(Short.TYPE.getName());//今の所無駄だけど・・・ } /** * Longと判断できる文字列のSet */ public static final Set<String> LONG_OBJECT_TYPE_SET = new HashSet<String>(); static { LONG_OBJECT_TYPE_SET.add(Long.class.getName()); LONG_OBJECT_TYPE_SET.add(Long.class.getSimpleName()); } /** * long と判断できる文字列のSet */ public static final Set<String> LONG_TYPE_SET = new HashSet<String>(); static { LONG_TYPE_SET.add(Long.TYPE.getSimpleName()); LONG_TYPE_SET.add(Long.TYPE.getName());//今の所無駄だけど・・・ } /** * Floatと判断できる文字列のSet */ public static final Set<String> FLOAT_OBJECT_TYPE_SET = new HashSet<String>(); static { FLOAT_OBJECT_TYPE_SET.add(Float.class.getName()); FLOAT_OBJECT_TYPE_SET.add(Float.class.getSimpleName()); } /** * float と判断できる文字列のSet */ public static final Set<String> FLOAT_TYPE_SET = new HashSet<String>(); static { FLOAT_TYPE_SET.add(Float.TYPE.getSimpleName()); FLOAT_TYPE_SET.add(Float.TYPE.getName());//今の所無駄だけど・・・ } /** * Doubleと判断できる文字列のSet */ public static final Set<String> DOUBLE_OBJECT_TYPE_SET = new HashSet<String>(); static { DOUBLE_OBJECT_TYPE_SET.add(Double.class.getName()); DOUBLE_OBJECT_TYPE_SET.add(Double.class.getSimpleName()); } /** * double と判断できる文字列のSet */ public static final Set<String> DOUBLE_TYPE_SET = new HashSet<String>(); static { DOUBLE_TYPE_SET.add(Double.TYPE.getSimpleName()); DOUBLE_TYPE_SET.add(Double.TYPE.getName());//今の所無駄だけど・・・ } /** * Characterと判断できる文字列のSet */ public static final Set<String> CHARACTER_TYPE_SET = new HashSet<String>(); static { CHARACTER_TYPE_SET.add(Character.class.getName()); CHARACTER_TYPE_SET.add(Character.class.getSimpleName()); } /** * char と判断できる文字列のSet */ public static final Set<String> CHAR_TYPE_SET = new HashSet<String>(); static { CHAR_TYPE_SET.add(Character.TYPE.getSimpleName()); CHAR_TYPE_SET.add(Character.TYPE.getName());//今の所無駄だけど・・・ } /** * Byteと判断できる文字列のSet */ public static final Set<String> BYTE_OBJECT_TYPE_SET = new HashSet<String>(); static { BYTE_OBJECT_TYPE_SET.add(Byte.class.getName()); BYTE_OBJECT_TYPE_SET.add(Byte.class.getSimpleName()); } /** * byte と判断できる文字列のSet */ public static final Set<String> BYTE_TYPE_SET = new HashSet<String>(); static { BYTE_TYPE_SET.add(Byte.TYPE.getSimpleName()); BYTE_TYPE_SET.add(Byte.TYPE.getName());//今の所無駄だけど・・・ } /** * Booleanと判断できる文字列のSet */ public static final Set<String> BOOLEAN_OBJECT_TYPE_SET = new HashSet<String>(); static { BOOLEAN_OBJECT_TYPE_SET.add(Boolean.class.getName()); BOOLEAN_OBJECT_TYPE_SET.add(Boolean.class.getSimpleName()); } /** * boolean と判断できる文字列のSet */ public static final Set<String> BOOLEAN_TYPE_SET = new HashSet<String>(); static { BOOLEAN_TYPE_SET.add(Boolean.TYPE.getSimpleName()); BOOLEAN_TYPE_SET.add(Boolean.TYPE.getName());//今の所無駄だけど・・・ } /** * java.sql.Timestampと判断できる文字列のSet */ public static final Set<String> TIMESTAMP_TYPE_SET = new HashSet<String>(); static { TIMESTAMP_TYPE_SET.add(Timestamp.class.getName()); } /** * java.util.Calendar と判断できる文字列のSet */ public static final Set<String> CALENDER_TYPE_SET = new HashSet<String>(); static { CALENDER_TYPE_SET.add(Calendar.class.getName()); CALENDER_TYPE_SET.add(GregorianCalendar.class.getName()); } /** * Stringへ変換する必要のある文字列のSet */ public static final Set<String> CONVERT_TOSTRING_TYPE_SET = new HashSet<String>(); static { CONVERT_TOSTRING_TYPE_SET.addAll(INTEGER_TYPE_SET); CONVERT_TOSTRING_TYPE_SET.addAll(INT_TYPE_SET); CONVERT_TOSTRING_TYPE_SET.addAll(SHORT_OBJECT_TYPE_SET); CONVERT_TOSTRING_TYPE_SET.addAll(SHORT_TYPE_SET); CONVERT_TOSTRING_TYPE_SET.addAll(LONG_OBJECT_TYPE_SET); CONVERT_TOSTRING_TYPE_SET.addAll(LONG_TYPE_SET); CONVERT_TOSTRING_TYPE_SET.addAll(FLOAT_OBJECT_TYPE_SET); CONVERT_TOSTRING_TYPE_SET.addAll(FLOAT_TYPE_SET); CONVERT_TOSTRING_TYPE_SET.addAll(DOUBLE_OBJECT_TYPE_SET); CONVERT_TOSTRING_TYPE_SET.addAll(DOUBLE_TYPE_SET); CONVERT_TOSTRING_TYPE_SET.addAll(CHARACTER_TYPE_SET); CONVERT_TOSTRING_TYPE_SET.addAll(CHAR_TYPE_SET); CONVERT_TOSTRING_TYPE_SET.addAll(BYTE_OBJECT_TYPE_SET); CONVERT_TOSTRING_TYPE_SET.addAll(BYTE_TYPE_SET); CONVERT_TOSTRING_TYPE_SET.addAll(BOOLEAN_OBJECT_TYPE_SET); CONVERT_TOSTRING_TYPE_SET.addAll(BOOLEAN_TYPE_SET); //以降拡張 CONVERT_TOSTRING_TYPE_SET.addAll(CALENDER_TYPE_SET); CONVERT_TOSTRING_TYPE_SET.addAll(TIMESTAMP_TYPE_SET); } public static final String convertToString(String type, String param) { return null; } private static final String getIntegerToString(String param) { StringBuilder sb = new StringBuilder(); sb.append(INDENT_METHOD_FIRST); sb.append("try {"); sb.append(INDENT_METHOD_SECOND); sb.append("this."); sb.append(param); sb.append(" = new Integer("); sb.append(param); sb.append(");"); sb.append("\t\t\t);} catch (Exception e)"); return sb.toString(); } }
変換メソッドなどを使って
最終的には相互変換メソッドの勝手実装も実現したいけど、
変換をべたで書く、共通規定クラス持たせる、独自のユーティリティとする。
など色々あるけど・・・
べたで書く以外だと、その共通部分を使わないといけないという「強制」
になってしまうから嫌だなぁ・・・
まぁどの道変換失敗だのってのは方針しだいなのでちょこちょこ作り変えるのか・・・
ひとまずそこはさておき、Beanの生成までを完成させてみるか〜
(ちなみにgetIntegerToStrngは変換も実装〜って先走った名残)