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相关推荐

  1. 将一个对象里所有的空值属性设置成null

    2019独角兽企业重金招聘Python工程师标准>>> /*** 将一个对象里所有的空值属性设置成null* @param o* @return*/public Object cha ...

  2. java如何让一个对象为null_将Java对象设置为null会不会做任何事情?

    这取决于一点,当你想到nulling引用. 如果你有一个对象链A-> B-> C,那么一旦A不可达,A,B和C都将有资格进行垃圾回收(假设没有其他指的是B或C).例如,没有必要,并且从来没 ...

  3. 重新绑定ItemsSource先设置ItemsSource = null;的原因

    即报错信息为:在使用 ItemsSource 之前,项集合必须为空. 原因:Items和ItemSource,只能有一个生效,想用其中一个,另一个必须是空. 重新绑定ItemSource,虽然绑定的集 ...

  4. java中对象清空值_对象的引用和清除_Java语言程

    对象的引用和清除_Java语言程 4.3.3 对象的引用和清除 在创建了类的对象后,就可以使用对象.即对象使用的原则是"先创建后使用". 使用对象的方法是:通过运算符". ...

  5. 将一个对象相同的属性(不区分大小写)赋值给一个新对象 DataTable的一个简单的扩展...

    将一个对象相同的属性(不区分大小写)赋值给一个新对象 1 public static T Mapper<S, T>(S source)2 {3 T t = Activator.Create ...

  6. C++核心准则ES.56​:只在需要将一个对象显式移动到另外的作用域时使用std::move​

    ES.56: Write std::move() only when you need to explicitly move an object to another scope ES.56:只在需要 ...

  7. 如何将一个对象中的List对象添加为子集,且父结构不存在重复数据

    如何将一个对象中的List对象添加为子集,且父结构不存在重复数据 有这样一个需求,把一个客户名下的联系人构建成下拉树结构.如 : A公司 ----联系人:张三 ----联系人:李四 B公司 ----联 ...

  8. JavaScript如何将一个对象里的某些属性抽离出来

    JavaScript如何将一个对象里的某些属性抽离出来 需求:如图所示,此数据是一个个很规范的键值对,属性有value和name 如下图所示:另外一组数据有很多很多属性,现在要将该数组里面的属性删至两 ...

  9. jackson设置返回null为空字符串

    1.将接口返回的字段为null的设置为空字符串: import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jacks ...

最新文章

  1. 入门 | CNN也能用于NLP任务,一文简述文本分类任务的7个模型
  2. MATLAB实时标定
  3. ORACLE 使用函数返回表数据
  4. ubuntu server修改语言
  5. gcc是java的什么意思_为什么gcc支持Java而不是C#
  6. LeetCode 305. 岛屿数量 II(并查集)
  7. html5 教程网站
  8. mysql利用树建立索引_MYSQL(一)——-为什么使用B+树或者B-树做为索引结构? – 算法网...
  9. Vue.use 写多个_西双版纳能写立项报告收费公司
  10. matlab匿名函数求导,MATLAB匿名函数和函数句柄
  11. 模电笔记之共射放大电路
  12. 手把手教你通过Google Adsense“PIN码验证”
  13. minikube start命令的国内使用方法
  14. 苹果回应巴西政府禁止销售不附赠充电器的iPhone;小米造车新进展;国内首家以数据服务为核心的央企数据中台上线 | EA周报...
  15. MFI认证——苹果MFI认证流程
  16. 自学Java软件编程需要哪些基础?
  17. 工程专硕在职研究生12月联考数学复习
  18. 使用DCDC升压电路——MT3608芯片
  19. 云手机哪个好用最流畅?红手指、双子星、雷电云手机性价比推荐排行
  20. 学习Java的第五天 | 定义方法 | 引用数据类型——类 | 访问权限-修饰符 | 全局变量与局部变量 | toString | 构造方法 | 方法重载

热门文章

  1. Careercup | Chapter 3
  2. 2012年最佳免费网站和移动应用 PSD 界面素材揭晓
  3. 网络主机和交换机端口位置的有效定位方法
  4. 使用广泛的开源PCB文件查看器 Gerbv 含多个严重漏洞
  5. 蓝鲸社区版_部署bkdata服务无法启动问题
  6. OpenCASCADE Texture Mapping
  7. 3月国内网民地域分布12强:广东居首 江苏重回第二
  8. 如何配置数据库ODBC数据源
  9. Redisbook学习笔记(3)数据类型之字符串
  10. Python下使用tarfile模块来实现文件归档压缩与解压