Home > Java > javaTutorial > body text

Exception caused by list All elements are null

巴扎黑
Release: 2017-06-26 10:22:04
Original
8075 people have browsed it

ArrayList allows adding null values, which can easily cause java.lang.NullPointerException exceptions when converting objects in the list.

Scenario:

Database select min(id) as id,min(name) as name from user where 1=2;

Query It's not that there is no record, but a record of null, null, which causes the User object to be null

List users = useDao.find(xxx); //size=1,All elements are null

At this time, an error will be reported when operating the user object!

Solution

Method 1: Remove null elements

Example:

 List<User> users = new ArrayList<User>();
        users.add(null);
        users.add(null);
        users.add(null);
        System.out.println("size:"+users.size()); //size:3for(User user:users){try {
                System.out.println("id:" + user.getId() + ",name:" + user.getName());
            }catch (Exception ex){
                System.out.println(ex); //java.lang.NullPointerException            }
        }users.remove(null); //移除第一个nullSystem.out.println("size:"+users.size()); //size:2    users.removeAll(Collections.singleton(null)); //移除所有的null元素System.out.println("size:"+users.size()); //size:0//不会进入循环for(User user:users){try {
                System.out.println("id:" + user.getId() + ",name:" + user.getName());
            }catch (Exception ex){
                System.out.println(ex);
            }
        }
Copy after login

<span style="font-size: 14px">法二:保证数据库查询出来没有null值,即遇null值转换为默认值<br><br><br></span><span style='font-family: "Microsoft YaHei"'>mysql下使用ifnull/case when均可实现</span><br><span style='font-family: "Microsoft YaHei"'>select  ifnull(min(id),-1) as id,ifnull(min(name),'defaultName') as name from user where 1=2;</span>
Copy after login
(有group by是分组统计,找不到记录就是没有记录)
Copy after login
 <br>
Copy after login
<span style="font-size: 14px"><em><br><br></em></span>
Copy after login

The above is the detailed content of Exception caused by list All elements are null. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!