数据流动之Java对象存入redis时完成字符串和bean的相互转换
简介:使用两个函数完成任意的Java对象和字符串之间的相互转换
对常见的Java类型进行常规转型,对其余的Java类型借助JSON来完成转换。下面代码来自RedisService.java。
1.字符串转为指定的Java类型
1 /** 2 * 将字符串转化为指定的Java类型对象 3 */ 4 public static <T>T strToBean(String str,Class<T> 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<T>):将一个JSON对象转化为一个clazz类型的Java对象。 19 }
Class<T>:传入某个Java类型的class。
return后面的(T)和<T>T中的后一个T保持相同。
返回类型的<T>T:表示返回类型T和<T>保持相同。
<T>T:中的<T>和参数Class<T>胸相同。
所以:Class<T>----><T>----->T------>return (T)。
2.将某个Java类型的对象或基本数据类型转化为String字符串
1 /* 2 *将某个类型的Java对象转换为string字符串 3 */ 4 5 public static <T> 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<T>是什么?能干什么?
每个Java类或基本数据类型在编译后都会产生一个.class字节码文件,在该文件内部包含了对应Java类或基本数据类型的相关信息,Class<T>代表所有.class文件对象的类,并
提供了很多的操作方法。
能创建一个对象:Class c1 = Class1.class ; Class1 c11 = c1.newInstance()。当Class1中包含有参构造方法时,会出错。
3.JSON的使用
引入依赖
1 <dependency> 2 <groupId>com.alibaba</groupId> 3 <artifactId>fastjson</artifactId> 4 <version>x.x.x</version> 5 </dependency>
import com.alibaba.fastjson.JSON; //将一个Java对象转化为字符串 JSON.toJSONString(Object o); //将一个字符串转化为一个JAVA对象 JSONObject jo = JSON.parseObject(String s) JSON.toJavaObject(jo,Class<T>);
posted on 2020-04-10 15:04 hello,bdiskl 阅读(1207) 评论(0) 编辑 收藏 举报