将一个对象的空值全部设置为null
2019独角兽企业重金招聘Python工程师标准>>>
上一篇博客 将一个对象里所有的空值属性设置成null 有个漏洞,
初次接触反射的同学还是建议看我上一篇的博客,看懂了再来看这篇
最近比较有空,重新研究了一下反射,发现反射在获取属性的时候getDeclaredFields()这个方法只能获取本类的属性,无法获得超类的属性,然而在实际编程中,都是各种继承,所以就必须将超类也考虑进去 ,
然并卵,又要死好多脑细胞了,因为你不知道到底有多少超类,所以递归,老实的用起来吧
/*** 将一个对象里所有的空值属性设置成null* * @param o* @return*/public Object changeToNull(Object o) {Class c = o.getClass();Class sc = c.getSuperclass();if (null != sc) {recursionNull(sc, o);}try {Field[] fs = c.getDeclaredFields();for (Field f : fs) {f.setAccessible(true);String st = f.get(o) + "";String str = st.replaceAll(" ", "");if (str.equals("") || str == null || str.equals("null")) {f.set(o, null);}}} catch (SecurityException e) {e.printStackTrace();} catch (Exception e) {e.printStackTrace();}return o;}/*** 判断是否有超类,若有则继续将超类的空值置空* @param sc* @param o* @return*/public Object recursionNull(Class sc,Object o) {Class c =sc.getSuperclass();if (null != c) {recursionNull(c,o);}try {Field[] fs = sc.getDeclaredFields();for (Field f : fs) {f.setAccessible(true);String st = f.get(o) + "";String str = st.replaceAll(" ", "");if (str.equals("") || str == null || str.equals("null")) {f.set(o, null);}}} catch (SecurityException e) {e.printStackTrace();} catch (Exception e) {e.printStackTrace();}return o;}
转载于:https://my.oschina.net/2892328252/blog/746320
将一个对象的空值全部设置为null相关推荐
- 将一个对象里所有的空值属性设置成null
2019独角兽企业重金招聘Python工程师标准>>> /*** 将一个对象里所有的空值属性设置成null* @param o* @return*/public Object cha ...
- java如何让一个对象为null_将Java对象设置为null会不会做任何事情?
这取决于一点,当你想到nulling引用. 如果你有一个对象链A-> B-> C,那么一旦A不可达,A,B和C都将有资格进行垃圾回收(假设没有其他指的是B或C).例如,没有必要,并且从来没 ...
- 重新绑定ItemsSource先设置ItemsSource = null;的原因
即报错信息为:在使用 ItemsSource 之前,项集合必须为空. 原因:Items和ItemSource,只能有一个生效,想用其中一个,另一个必须是空. 重新绑定ItemSource,虽然绑定的集 ...
- java中对象清空值_对象的引用和清除_Java语言程
对象的引用和清除_Java语言程 4.3.3 对象的引用和清除 在创建了类的对象后,就可以使用对象.即对象使用的原则是"先创建后使用". 使用对象的方法是:通过运算符". ...
- 将一个对象相同的属性(不区分大小写)赋值给一个新对象 DataTable的一个简单的扩展...
将一个对象相同的属性(不区分大小写)赋值给一个新对象 1 public static T Mapper<S, T>(S source)2 {3 T t = Activator.Create ...
- C++核心准则ES.56:只在需要将一个对象显式移动到另外的作用域时使用std::move
ES.56: Write std::move() only when you need to explicitly move an object to another scope ES.56:只在需要 ...
- 如何将一个对象中的List对象添加为子集,且父结构不存在重复数据
如何将一个对象中的List对象添加为子集,且父结构不存在重复数据 有这样一个需求,把一个客户名下的联系人构建成下拉树结构.如 : A公司 ----联系人:张三 ----联系人:李四 B公司 ----联 ...
- JavaScript如何将一个对象里的某些属性抽离出来
JavaScript如何将一个对象里的某些属性抽离出来 需求:如图所示,此数据是一个个很规范的键值对,属性有value和name 如下图所示:另外一组数据有很多很多属性,现在要将该数组里面的属性删至两 ...
- jackson设置返回null为空字符串
1.将接口返回的字段为null的设置为空字符串: import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jacks ...
最新文章
- 入门 | CNN也能用于NLP任务,一文简述文本分类任务的7个模型
- MATLAB实时标定
- ORACLE 使用函数返回表数据
- ubuntu server修改语言
- gcc是java的什么意思_为什么gcc支持Java而不是C#
- LeetCode 305. 岛屿数量 II(并查集)
- html5 教程网站
- mysql利用树建立索引_MYSQL(一)——-为什么使用B+树或者B-树做为索引结构? – 算法网...
- Vue.use 写多个_西双版纳能写立项报告收费公司
- matlab匿名函数求导,MATLAB匿名函数和函数句柄
- 模电笔记之共射放大电路
- 手把手教你通过Google Adsense“PIN码验证”
- minikube start命令的国内使用方法
- 苹果回应巴西政府禁止销售不附赠充电器的iPhone;小米造车新进展;国内首家以数据服务为核心的央企数据中台上线 | EA周报...
- MFI认证——苹果MFI认证流程
- 自学Java软件编程需要哪些基础?
- 工程专硕在职研究生12月联考数学复习
- 使用DCDC升压电路——MT3608芯片
- 云手机哪个好用最流畅?红手指、双子星、雷电云手机性价比推荐排行
- 学习Java的第五天 | 定义方法 | 引用数据类型——类 | 访问权限-修饰符 | 全局变量与局部变量 | toString | 构造方法 | 方法重载