反射让一个类及其超类的的字段全部为null--设置字段为null
来源:互联网 发布:广东淘宝商城 编辑:程序博客网 时间:2024/06/10 10:42
package com.ipace.chaoJie.utils;import java.lang.reflect.Field;import java.util.ArrayList;import java.util.Arrays;import java.util.List;/** * 该方法 *不能设置父类的字段为null * */public class MakeColumnNull0False<T> { public T f(T o) { /** ******下面一直到while*会得到该类及其父类的所有字段********************************************************************************* * */ List<Field> fieldList=new ArrayList<>(); Class<?> aClass = o.getClass(); while (aClass != null) {//用while得到所有超类的字段属性 fieldList.addAll(Arrays.asList(aClass.getDeclaredFields())); aClass = aClass.getSuperclass(); //得到父类,然后赋给自己 } /** *****上面会得到该类及其父类的所有字段*********************************************************************************** * */ for(Field field:fieldList){ field.setAccessible(true); Class<?> type = field.getType(); if("int".equals(type.getName())){ try { field.setInt(o,0); } catch (IllegalAccessException e) { System.out.println("该类的该字段类型为"+type.getName()+"无法转换为null或者0"); } }else if("double".equals(type.getName())){ try { field.setDouble(o,0d); } catch (IllegalAccessException e) { System.out.println("该类的该字段类型为"+type.getName()+"无法转换为null或者0"); } } else if("float".equals(type.getName())){ try { field.setFloat(o,0f); } catch (IllegalAccessException e) { System.out.println("该类的该字段类型为"+type.getName()+"无法转换为null或者0"); } }else if("long".equals(type.getName())){ try { field.setLong(o,0L); } catch (IllegalAccessException e) { System.out.println("该类的该字段类型为"+type.getName()+"无法转换为null或者0"); } }else if("short".equals(type.getName())){ try { field.setShort(o, (short) 0); } catch (IllegalAccessException e) { System.out.println("该类的该字段类型为"+type.getName()+"无法转换为null或者0"); } }else if("boolean".equals(type.getName())){ try { field.setBoolean(o,false); } catch (IllegalAccessException e) { System.out.println("该类的该字段类型为"+type.getName()+"无法转换为null或者0"); } }else{ try { field.set(o,null); } catch (IllegalAccessException e) { System.out.println("该类的该字段类型为"+type.getName()+"无法转换为null或者0"); } } } return o; } }
阅读全文
0 0
- 反射让一个类及其超类的的字段全部为null--设置字段为null
- mysql 设置字段为null
- 判断一个字段为null
- 一个SQL的bug:值为null的字段处理
- MySQL更新一个值为null的字段
- MySQL中可为空的字段设置为NULL还是NOT NULL
- mysql查询字段为null的方法
- mysql删除字段为null的记录
- mysql删除字段为null的记录
- mysql 字段为NULL的一些操作
- 更新字段名包含某些字符的字段为Null
- jTDS访问SQL2005数据库的视图返回的字段值全部为null
- 关于mysql ordery by字段全部为null的结果疑问
- 为已存在的字段(Null)添加约束,设置默认值为0
- 如何让mysql的排序字段的值为空(null)的时候排在后面
- SQL 字段为NULL查询
- MySQL 字段值为NULL
- Mybatis 下划线字段为NULL
- pta
- 菜鸟学习历程【18】通信录项目实战
- 单机Docker-compose编排pbspro_maya
- android,进入页面textview默认获得焦点问题,如何取消焦点
- 7-5 装箱问题(25 分) 假设有N项物品,大小分别为s 1 、s 2 、…、s i 、…、s N ,其中s i 为满足1≤s i ≤100的整数。要把这些物品装
- 反射让一个类及其超类的的字段全部为null--设置字段为null
- 项目:通讯录(I/O文件版)
- 采用python中SQLalchemy模块访问数据库
- solrCloud搭建
- EXT4文件系统之多块分配
- python -- 最长公共子序列
- 通过shell脚本配置android属性和配置新属性的方法
- 如何在GitHub上下载文件/仓库
- Java实现余弦定理计算文本相似度