首页 > 人工智能 > 正文

java判断对象为空,怎样判断一个类的实例是否属于一个类对象

2020-04-20 13:33:39  来源:http://www.capsicumpm.com  编辑:admin

java 如何实现判断一个对象所有的属性是否为空

答: 判断1个对象所有属性是否为空. 可以使用反射机制实现 .核心参考代码//判断该对象是否:返回ture表示所有属性为null返回false表示不是所有属性都是nullpublicstaticbooleanisAllFieldNull(Objectobj)throwsException{ClassstuCla=(Class)obj.getClass();//得到类对象Field[]fs=stuCla.getDeclaredFields();//得到属性集合booleanflag=true;for(Fieldf:fs){//遍历属性f.setAccessible(true);//设置属性是可以访问的(私有的也可以)Objectval=f.get(obj);//得到此属性的值if(val!=null){//只要有1个属性不为空,那么就不是所有的属性值都为空flag=false;break;}}returnflag;}完整代码 进行测试importjava.lang.reflect.Field;classStudent{//学生类privateStringname;//姓名privateIntegerage;//年龄privateStringxq;//兴趣publicStudent(){}publicStudent(Stringname,Integerage,Stringxq){this.name=name;this.age=age;this.xq=xq;}}classCat{//猫类Stringname;Integerage;publicCat(){}publicCat(Stringname,Integerage){this.name=name;this.age=age;}}publicclassMyTest{//测试类publicstaticvoidmain(String[]args)throwsException{Studentstu1=newStudent();if(isAllFieldNull(stu1)){System.out.println("stu1对象所有的属性为null");}Studentstu2=newStudent("张三",12,null);//只有兴趣属性为nullif(isAllFieldNull(stu2)){System.out.println("stu2对象所有的属性为null");}Catcat=newCat();if(isAllFieldNull(cat)){System.out.println("cat对象所有的属性为null");}}//判断该对象是否publicstaticbooleanisAllFieldNull(Objectobj)throwsException{ClassstuCla=(Class)obj.getClass();//得到类对象Field[]fs=stuCla.getDeclaredFields();//得到属性集合booleanflag=true;for(Fieldf:fs){//遍历属性f.setAccessible(true);//设置属性是可以访问的(私有的也可以)Objectval=f.get(obj);//得到此属性的值if(val!=null){//只要有1个属性不为空,那么就不是所有的属性值都为空flag=false;break;}}returnflag;}}输出stu1对象所有的属性为nullcat对象所有的属性为null

java中用==判断两对象是否相等的准则

如果是引用类型的对象作比较,则比较对象地址。如果是基本类型,会分几种情况:1)字符串和数字 比较值是否相等 例如:'1' == 1 //true2)含布尔值或条件表达式,会将布尔值为true转化为1,false为0. 例如:1 == true //true; 1== 3> 2 //true另外一般建议使用绝对等于 === 它不仅比较值,而且也比较类型'1' === 1 //false,因为两个类型不一样

java 如何判断一个对象被其它线程读或写锁定-如果锁定则所在方法return

你需要一种非阻塞式的锁。java.util.cocurrent包中的ReentrantReadWriteLock就提供了可重入的读写锁机制。finalReentrantReadWriteLockrwl=newReentrantReadWriteLock();//读写锁publicbooleanread(){//尝试获取读锁if(rwl.readLock().tryLock()){//读资源returntrue;}else{//获取读锁失败returnfalse;//立即返回}}publicbooleanwrite(){//尝试获取写锁if(rwl.writeLock().tryLock()){//写资源returntrue;}else{//获取写锁失败returnfalse;//立即返回}}

重写StringBuffer类的equals()方法,用于判断两个StringBuffer对象的字符串值是否相等?

StringBuffer类没有重写Object里面的equals()的方法,所以直接用equals()比较的是地址判断两个StringBuffer对象是否值相等,用toString()方法就可以了如: StringBuffer sb1 = new StringBuffer("hello"); StringBuffer sb2 = new StringBuffer("hello");判断 sb1.toString().equals(sb2.toString())即可

Java中,怎样判断同一个类的两个对象中的内容是否相等?

可以通过对象的中的方法获取属性然后比较