对象和null的一些问题

    首先创建一个类:

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");
        }

好啦,周末愉快。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值