redis存储java对象和字符串_数据流动之Java对象存入redis时完成字符串和bean的相互转换...

这篇博客介绍了如何在Redis中实现Java对象与字符串之间的转换。通过提供的两个函数,可以将任意Java对象转换为字符串,反之亦然。转换过程中,对于基本数据类型采用常规方法,非基本类型则借助JSON库完成。同时,文章提到了Class对象在Java中的作用以及JSON库在对象串行化和反串行化中的应用。
摘要由CSDN通过智能技术生成

简介:使用两个函数完成任意的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);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值