请选择 进入手机版 | 继续访问电脑版
搜索
房产
装修
汽车
婚嫁
健康
理财
旅游
美食
跳蚤
二手房
租房
招聘
二手车
教育
茶座
我要买房
买东西
装修家居
交友
职场
生活
网购
亲子
情感
龙城车友
找美食
谈婚论嫁
美女
兴趣
八卦
宠物
手机

辰洋吧 Java经典语法:transient关键字使用总结溺爱上将的宝贝娇妻

[复制链接]
查看: 862|回复: 1

40

主题

196

帖子

268

积分

等待验证会员

积分
268
发表于 2019-5-16 15:16 | 显示全部楼层 |阅读模式
这是写在帖子头部的内容

Java典范语法:transient关键字利用总结

Java经典语法:transient关键字使用总结  国内新闻 151629yc3g1goa333mfm3d


比来在看HashMap源代码的时辰,发现链表table数组采用了transient关键字,笔者那时感受对transient关键字很陌生但又似曾了解,那里用到过?所以对java关键字 transient总结了下。

Java典范语法:transient关键字利用总结

Java经典语法:transient关键字使用总结  国内新闻 151629zwufggiui1ws7r4i


<h1>Java关键字:transient的界说

简单来说,被transient修饰过的成员属性,不能被序列化。
我们以查询某个产物API接口为例,经过产物ID,查询返回一个产物工具,经过json序列化后把json数据返回给前端

DXCPICKPRE_0</pre><h1>Java关键字:transient的约定

约定一、只能修饰变量
而不能修饰方式和类。留意,当地变量是不能被transient关键字修饰的。
约定二、被transient关键字修饰过的属性不能被序列化
也就是说,被transient修饰过的属性,在对工具序列化后,是没法拜候到该属性的。
约定三、静态变量不管有无被transient修饰过,不能被序列化
<h1>Java关键字:transient利用处景

工具属性推导
假如一个工具的属性值,可以经过其他属性大概方式推理出来的,那末没该属性没需要被序列化了。
例若有个产物工具(Product)包括价格、数目、总价三个字段,那末总价可以经过价格乘以数目推导出来。

DXCPICKPRE_1</pre>输出成果:

DXCPICKPRE_2</pre>我们看到,sum属性被transient修饰后,不会被Gson序列化输出。
我们来分析下Gson序列化进程:Gson序列化源码分析
首先挪用toJson方式,传入Product工具:

DXCPICKPRE_3</pre>按照传入的工具,获得工具的class范例:typeOfSrc,找到对应的工具剖析适配器工场

DXCPICKPRE_4</pre>经过适配器ReflectiveTypeAdapterFactory工场的create方式,我们找到getBoundFields方式,这个方式做了两件工作
1、剔除被transient关键字修饰过的属性。
2、挑选出可序列化的属性

DXCPICKPRE_5</pre>经过excludeField方式,剔除被transient修饰过的属性,其法则是经过位运算"&"判定modifiers属性与工具属性的field.getModifiers()的值能否分歧,来证实该属性能否被transient修饰过,假如是为真,暗示剔除该属性,不停止序列化。

DXCPICKPRE_6</pre>别的按照modifiers属性界说Modifier.TRANSIENT | Modifier.STATIC两品种型,一种是tranient,另一种是static静态范例。
Modifier.STATIC:静态范例
由约定三、我们晓得,静态变量不会被序列化。
代码debug到此,我们已经晓得Gson是若何判定工具的能否存在被transient修饰过属性以及若何过滤掉的呢。
<h1>总结

经过常用的Gson方式来考证tranient关键字,还可以经过java的io包下的 ObjectInputStream和ObjectOutputStream两个工具输入输出流也可以考证的,这里不做赘述,网上例子很多。
转发 + 关注以后,私信答复“材料”可免得费支付口试宝典/SpringBoot等视频和材料,亲记得要点赞转发哦。。
感激您的阅读
[url=http://reality-show.ru/portal/user/nezasEvime
回复

使用道具 举报

28

主题

140

帖子

192

积分

等待验证会员

积分
192
发表于 2019-5-16 14:22 | 显示全部楼层
转发了
[url=https://longlevenschiro.com/therapy/knowledge
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Copyright © 2006-2014 科技资讯网|科技新闻网--最新最快科技新闻发布汇集平台。 版权所有 法律顾问:高律师 客服电话:0791-88289918
技术支持:迪恩网络科技公司  Powered by Discuz! X3.2
快速回复 返回顶部 返回列表