Java中如何通过Class<T>封装数据
给出数据的字符串形式的表达式,如何将它们封装成对应的数据,比如int.class和"1",java.lang.String.class和"abc",boolean和"fa...
给出数据的字符串形式的表达式,如何将它们封装成对应的数据,比如
int.class和"1",java.lang.String.class和"abc",boolean和"false"
就是应为不想用hibernate,所以自己做了一个O/R框架,现在一直在用if判断来判断封装,多少种数据类型就多少个if,大部分我都用Class.getDeclaredConstructor查找parse方法,可是名字都不很规范,比如Integer要写成parseInt,却不能用parseInteger。 展开
int.class和"1",java.lang.String.class和"abc",boolean和"false"
就是应为不想用hibernate,所以自己做了一个O/R框架,现在一直在用if判断来判断封装,多少种数据类型就多少个if,大部分我都用Class.getDeclaredConstructor查找parse方法,可是名字都不很规范,比如Integer要写成parseInt,却不能用parseInteger。 展开
2个回答
展开全部
我想楼主问的关键是怎么自动对给出的数据进行类型判断。
一般在hibernate和ibatis的实现中,会根据数据库中字段的类型来映射java中的类型。也可以自己指定映射的java中的类型,需要在配置文件中配置。
按照楼主的要求,你也可以用一个类似的配置文件来进行。或者要求不复杂的话,用正则也可以。用正则判断给出的数据是否带除了+-.和数字之外的字符,是的话就是String类型,否则转换成数字类型,带小数点就转成double,否则转成int或long。然后再用正则判断是否为true或false包括大小写等,转成boolean。具体的需求根据具体的业务规则来定了。
最好的方式还是推荐用配置文件来进行,避免出现本来作为String类型的数字,转换成了数字类型等这种情况的出现。
-------------------------------
所以说你可以参考下hibernate的做法,定义一个配置文件,设置java bean中的数据类型。也可以定义一个默认的数据库字段类型转到java类型的一个配置文件。这样可变的部分都放在配置文件中进行,要修改也是修改配置文件,代码中不用做if进行判断,用反射就可以写个通用的代码了。
一般在hibernate和ibatis的实现中,会根据数据库中字段的类型来映射java中的类型。也可以自己指定映射的java中的类型,需要在配置文件中配置。
按照楼主的要求,你也可以用一个类似的配置文件来进行。或者要求不复杂的话,用正则也可以。用正则判断给出的数据是否带除了+-.和数字之外的字符,是的话就是String类型,否则转换成数字类型,带小数点就转成double,否则转成int或long。然后再用正则判断是否为true或false包括大小写等,转成boolean。具体的需求根据具体的业务规则来定了。
最好的方式还是推荐用配置文件来进行,避免出现本来作为String类型的数字,转换成了数字类型等这种情况的出现。
-------------------------------
所以说你可以参考下hibernate的做法,定义一个配置文件,设置java bean中的数据类型。也可以定义一个默认的数据库字段类型转到java类型的一个配置文件。这样可变的部分都放在配置文件中进行,要修改也是修改配置文件,代码中不用做if进行判断,用反射就可以写个通用的代码了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询