java 怎样判断一个对象是不是为空?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 怎样判断一个对象是不是为空?相关的知识,希望对你有一定的参考价值。
Item item = new Item();这个对象肯定是为空的,为什么if(item == null)却是不成立?这样才能判断出对象为空?
Item item = new Item();这个对象肯定是为空的错了,这个对象已经分配了内存,不是空的,用System.out.println(item)打印就知道已经存在地址,如果是空,打印null;
判断一个对象是否为空,就是按那个条件判断,没有错,System.out.println();是控制台比较实用的调试,测试方法 参考技术A Item item = new Item();
现在这个对象为不为空 还不知道 如果内存够用 那么就给他分配好了内存
如果内存不够用了 那么他就是空了
所以在下面加一个逻辑判断if(item == null)
如果成立了 那么表示现在内存不足 对象没有产生
如果不成立那么便是对象已经在内存中产生 参考技术B new之后就在堆内存中开辟了一定的空间来存储对象,同时栈内存中的引用(就是item中存放的地址)指向对应的堆内存地址;null表示内存中没有这个对象。 参考技术C 谁跟你说item是空的。new出来了就不是空的,哪怕没有给他赋值,他都是存在的。就像刚出生的小孩,没有起名字就不存在吗? 参考技术D 你都对他实例化了 他肯定不为空了
如果没有具体的引用它就是空的
怎样判断一个javaBean中的所有属性为空
参考技术A 用反射Java代码
1.public void check()
2. Method[] methods = this.getClass().getMethods();
3. for (int i = 0; i < methods.length; i++)
4. Method method = methods[i];
5. if (method.getName().startsWith("set")
6. && (method.getParameterTypes())[0].getName().equals(String.class.getName()))
7. try
8. method.invoke(this);
9. catch (IllegalArgumentException e)
10. e.printStackTrace();
11. catch (IllegalAccessException e)
12. e.printStackTrace();
13. catch (InvocationTargetException e)
14. e.printStackTrace();
15.
16.
17. 本回答被提问者和网友采纳
以上是关于java 怎样判断一个对象是不是为空?的主要内容,如果未能解决你的问题,请参考以下文章