首先创建一个类:
class User{
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
main程序中创建一个user,输出结果肯定是:user is null。
User user =null;
if(user==null){
System.out.println("user is null");
}else{
System.out.println("user is not null");
}
然后创建user2,输出结果是:user2 is not null,初学的时候经常这两种状况傻傻分不清。
User user2 = new User();
if(user2==null){
System.out.println("user2 is null");
}else{
System.out.println("user2 is not null");
}
再回到user,如果直接对它操作:
User user =null;
user.setName("hehe");
编译能通过,运行直接就是
Exception in thread “main” java.lang.NullPointerException
鉴于此在对象调用的时候注意区分,比如拼凑sql语句
StringBuffer sb = new StringBuffer();
StringBuffer sb = null;
很容易使用了下面一个写法并且直接调用append()方法。
另外jdbc中的许多变量统一在外边申明为null,是方便内部代码块重复使用变量,需要注意申明为null的变量的赋值。
还有遇到过的问题是在写DAO层的时候vo变量进行null赋值直接操作,在业务层调用findById()函数的时候不报错但是每次都是判断失败,无法实现查询功能。
再来个逗比一下:
User user = new User();
user.setName(null);
if(user==null){
System.out.println("user is null");
}else{
System.out.println("user is not null");
}
好啦,周末愉快。