简介:使用两个函数完成任意的Java对象和字符串之间的相互转换
对常见的Java类型进行常规转型,对其余的Java类型借助JSON来完成转换。下面代码来自RedisService.java。
1.字符串转为指定的Java类型
1 /**
2 * 将字符串转化为指定的Java类型对象3 */
4 public static T strToBean(String str,Class clazz) { //将字符串转变为指定类型的Java对象
5 if (str == null||clazz==null||str.length()==0) {6 return null;7 }8 if (clazz == int.class || clazz==Integer.class) {9 return(T) Integer.valueOf(str);10 }else if (clazz==long.class||clazz==Long.class){11 return(T) Long.valueOf(str);12 }else if (clazz==float.class||clazz==Float.class) {13 return(T) Float.valueOf(str);14 }else if (clazz==String.class){15 return(T) str;16 }else return(T) JSON.toJavaObject(JSON.parseObject(str),clazz);17 //JSON.parseObject(str):将字符串转化为一个对象18 //JSON.toJavaObject(JSON,class):将一个JSON对象转化为一个clazz类型的Java对象。
19 }
Class:传入某个Java类型的class。
return后面的(T)和T中的后一个T保持相同。
返回类型的T:表示返回类型T和保持相同。
T:中的和参数Class胸相同。
所以:Class---->----->T------>return (T)。
2.将某个Java类型的对象或基本数据类型转化为String字符串
1 /*
2 *将某个类型的Java对象转换为string字符串3 */
4
5 public static String beanToStr(T value) {6 if (value == null) {7 return null;8 }9 //基本数据类型使用常规方式转换
10 Class> clazz =value.getClass();11 if (clazz == int.class || clazz==Integer.class) {12 return value+"";13 }else if (clazz==long.class||clazz==Long.class){14 return value+"";15 }else if (clazz==float.class||clazz==Float.class) {16 return value + "";17 }else if (clazz==String.class){18 return(String) value;19 }else return JSON.toJSONString(value); //非基本数据类型使用JSON.toJSONString()
20
21 }
学习:
1.Class和取得Class
面向对象的思想为万物皆是对象,对象以类为模板来创建,而创建对象的类又是谁的对象呢? 是java.lang.Class的对象,每个类都是Class的对象。
对象获取类的方法:对象.getClass()
类获取类对象的方法:类名.class
java.lang.Class.forName(包名.类名A):动态加载类名A,即当程序运行时将类名A加载到JVM(得到类名A的类对象)。
2.Class是什么?能干什么?
每个Java类或基本数据类型在编译后都会产生一个.class字节码文件,在该文件内部包含了对应Java类或基本数据类型的相关信息,Class代表所有.class文件对象的类,并
提供了很多的操作方法。
能创建一个对象:Class c1 = Class1.class ; Class1 c11 = c1.newInstance()。当Class1中包含有参构造方法时,会出错。
3.JSON的使用
引入依赖
1
2 com.alibaba
3 fastjson
4 x.x.x
5
importcom.alibaba.fastjson.JSON;//将一个Java对象转化为字符串
JSON.toJSONString(Object o);//将一个字符串转化为一个JAVA对象
JSONObject jo =JSON.parseObject(String s)
JSON.toJavaObject(jo,Class);