首页 > 编程语言 >java 反射获取某个类的属性名和属性的值

java 反射获取某个类的属性名和属性的值

时间:2024-01-23 18:11:19浏览次数:25  
标签:反射 null java String after 修改 && 属性 before

/**
* 根据字段饰扣可以为空获取每个属性的变更内容 如 课程名称:英语-->数学;
* @param vo
* @param fieldName 字段名:传值类型为CourseName 周首字母大写
* @param describe 字段的描述:可以理解为就是字段的名称 如 课程名称
* @param sb StringBuffer对象
* @return
* @throws Exception
*/
private StringBuffer getEditContentWhetherNull(CourseDtFieldsDto vo,String fieldName,String describe,StringBuffer sb) throws Exception {
Class aClass = vo.getClass();
String getFieldNameBefore = "get"+fieldName+"Before"; //获取修改前的值的get方法名
String getFieldNameAfter = "get"+fieldName+"After"; //获取修改后的值的get方法名
Method getBefore = aClass.getDeclaredMethod(getFieldNameBefore); //获取修改前的值的get方法
Method getAfter = aClass.getDeclaredMethod(getFieldNameAfter); //获取修改后的值的get方法
String type= getBefore.getGenericReturnType().toString();
type = type.substring(type.lastIndexOf(".")+1); //获取属性的类型
if("String".equals(type)){
String before = (String) getBefore.invoke(vo); //获取修改前的值
String after = (String) getAfter.invoke(vo); //获取修改后的值
if((before != null && !"".equals(before)) && (after == null || "".equals(after))){ //修改前的值不为空 修改后的值为空
sb.append(describe+":"+before+" --> "+"空; ");
}
if((before != null && !"".equals(before)) && (after != null && !"".equals(after)) && (!before.equals(after))){ //修改前的值不为空 修改后的值不为空 且修改前和修改后不相等
sb.append(describe+":"+before+" --> "+after+"; ");
}
if((before == null || "".equals(before)) && (after != null && !"".equals(after))){ //修改前的值为空 修改后的值不为空
sb.append(describe+":空"+" --> "+after+"; ");
}
}else{
Object before = getBefore.invoke(vo); //获取修改前的值
Object after = getAfter.invoke(vo); //获取修改后的值
if((before != null) && (after == null)){ //修改前的值不为空 修改后的值为空
sb.append(describe+":"+before+" --> "+"空; ");
}
if((before != null) && (after != null) && (!before.equals(after))){ //修改前的值不为空 修改后的值不为空 且修改前和修改后不相等
sb.append(describe+":"+before+" --> "+after+"; ");
}
if((before == null) && (after != null)){ //修改前的值为空 修改后的值不为空
sb.append(describe+":空"+" --> "+after+"; ");
}
}
return sb;
}

标签:反射,null,java,String,after,修改,&&,属性,before
From: https://www.cnblogs.com/heavenTang/p/17983068

相关文章

  • CSS_常用文本属性
    1、文本颜色 2、文本间距   3、文本修饰text-decoration  4、文本缩进text-indent  5、文本对齐_水平text-align  6、细说font-saize 7、行高line-height(不能小于字体大小,一般1.5)  8、行高的注意事项-数值一般为1.5 9、文本对齐_......
  • elasticsearchjava客户端
    elasticsearchjava客户端1.引用maven配置<dependency><groupId>org.elasticsearch.client</groupId><artifactId>elasticsearch-rest-high-level-client</artifactId><exclusions><exclusion>&l......
  • Java resultset判断mysql表是否存在
    importjava.sql.*;publicclassCheckTableExistence{publicstaticvoidmain(String[]args)throwsSQLException{Stringurl="jdbc:mysql://localhost:3306/mydatabase";//MySQL服务器地址及数据库名称Stringusername="root"......
  • Java反编译工具 JD-GUI安装使用
    将源代码转换成二进制执行代码的过程叫“编译”,那么反编译就是将二进制执行代码转换成源代码。在java开发里,源代码是.java文件,然后经过编译后生成计算机识别的.class文件,但是.class文件是计算机识别的我们一般看不明白,因此需要反编译变成我们能读懂的源码,但是反编译后的......
  • 生辰八字算五行java实现
    importorg.junit.runner.RunWith;importorg.springframework.boot.test.context.SpringBootTest;importorg.springframework.test.context.junit4.SpringJUnit4ClassRunner;@RunWith(SpringJUnit4ClassRunner.class)@SpringBootTestpublicclassWuXingAndEightTest{p......
  • Java垃圾回收机制:理解与实践
    Java语言的一个显著特点是其自动内存管理,即垃圾回收(GarbageCollection,GC)。GC可以自动监控每个对象的引用情况,当一个对象不再被引用时,GC会自动释放该对象占用的内存。这大大简化了开发者的内存管理工作,但也带来了性能上的挑战。本文将探讨Java中的垃圾回收机制,并通过代码示例解释......
  • 反射
    ///<summary>///更新数据时给GridView赋值///</summary>///<typeparamname="T"></typeparam>///<paramname="gridview">表格</param>///<paramname="rowHandle"......
  • 代理对象执行私有方法导致注入的属性为null
    代码如下:@ServicepublicclassPerformanceServiceImplimplementsIPerformanceService{privatefinalstaticLoggerlogger=LoggerFactory.getLogger(PerformanceServiceImpl.class);@ResourcePerformanceDaoperformanceDao;@Override......
  • 写给不耐烦程序员的 JavaScript 指南(二)
    第四部分:原始值原文:exploringjs.com/impatient-js/pt_primitive-values.html译者:飞龙协议:CCBY-NC-SA4.0下一步:14非值undefined和null十四、非值的undefined和null原文:exploringjs.com/impatient-js/ch_undefined-null.html译者:飞龙协议:CCBY-NC-SA4.014......
  • Java web的过滤器Filter
    注:来自《JavaWeb入门经典》一书,仅供参考和学习。1.过滤器的核心对象2.创建并配置过滤器......