首页 > 编程知识 正文

java什么是类,java属性定义

时间:2023-05-06 15:05:02 阅读:170776 作者:558

如何共享实体类之间的属性比较

如何:如果更改实体类属性的当前更改操作与原始实体类属性值相同,则返回true,并且不需要进行任何更改操作。 相反地进行修正操作

import java.beans.Introspector;

import Java.beans.property descriptor;

import java.lang.reflect.Method;

import java.sql.Timestamp;

import java.util.ArrayList;

import java.util.Arrays;

import java.util.Date;

import java.util.HashMap;

import java.util.Iterator;

import java.util.List;

import java.util.Map;

import org.junit.Test;

import com.data code.bean.standard title.standard title;

公共类公司实用程序{

//*

*比较两个实体的属性值,并返回一个布尔值。 如果为true,则两个对象的属性值没有差异

* @param oldObject属性比较的对象1

* @param newObject属性比较的对象2

* @return属性差异比较结果布尔

*/

publicstaticbooleancompareobject (objectoldobject,Object newObject ) {

mapresultmap=compare fields (old object,newObject,null );

//system.out.println (result map-----result map );

结果映射(if ) (0) ) ) ) ) ) ) )。

返回假;

}else {

返回真;

}

}

@Test

公共void te st01 (

standardtitlest1=newstandardtitle (;

st1.setstandardchinesename (' 123456 );

ST1.setstandardchronology('2);

standardtitlest2=newstandardtitle (;

st2.setstandardchinesename (' 123456 );

ST2.setstandardchronology('2);

system.out.println (compare object (st1,st2 ) );

}

//*

*比较两个实体属性值,返回一个map用不同的属性名称存储key,value在一个map中存储属性名称oldObject,newObject的值

* @param obj1进行属性比较的对象1

* @param obj2进行属性比较的对象2

* @param ignoreArr忽略比较的字段

* @return属性差异比较结果图

*/

@suppresswarnings('rawtypes ) ) ) )。

publicstaticmapcomparefields (objectobj 1,Object obj2,String[] ignoreArr ) {

try{

映射图=new hashmap (;

List ignoreList=null;

if(ignorearr )!=null ignoreArr.length 0) {

//array被转换为列表

ignore list=arrays.as list (ignore arr );

}

if (obj1. getclass (==obj2. getclass ) )//仅当两个对象类型相同时才可进行比较

Class clazz=obj1.getClass (;

获取object的属性描述

property descriptor [ ] PDS=introspect or.getbeaninfo (clazz,

object.class (.getproperty descriptors );

属性描述符3360 PDS (for )//这里是所有属性

String name=pd.getName (; //属性名称

if (登录列表!=nullignorelist.contains(name ) )//如果选择忽略当前属性中的比较,请跳到下一个循环

连续;

}

methodreadmethod=PD.getreadmethod (; //get方法

在//obj1上调用get方法与获取obj1的属性值相同

objecto1=read method.invoke (obj1);

在//obj2上调用get方法与获取obj2的属性值相同

objecto2=read method.invoke (obj2);

if(O1instanceoftimestamp ) {

o1=newdate () (timestamp ) O1 ).getTime );

}

时间表(if ) {

o2=newdate () (timestamp ) O2 ).getTime );

}

if (O1==空O2==空) {

连续;

}elseif(O1==nullO2!=null ) {

List list=new ArrayList (;

list.add(O1;

list.add(O2;

map.put(name,list );

连续;

}

if (! O1.Equals(O2 )//比较这两个值是否相等,可以不等待就放入map

List list=new ArrayList (;

list.add(O1;

list.add(O2;

map.put(name,list );

}

}

}

返回地图;

}catch(exceptione ) {

e .打印任务跟踪(;

返回空值;

}

}

}

如果实体类的属性相同,则返回位true

如果实体类的某些属性不同,则返回false

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。