Maison >Java >javaDidacticiel >Exception causée par la liste Tous les éléments sont nuls
ArrayList permet d'ajouter des valeurs nulles, ce qui peut facilement provoquer des exceptions java.lang.NullPointerException lors de la conversion d'objets dans la liste.
Scénario :
La base de données sélectionne min(id) comme identifiant, min(name) comme nom de l'utilisateur où 1=2 ;
Requête Ce n'est pas qu'il n'y a pas d'enregistrement, mais un enregistrement de null, null, ce qui fait que l'objet User est null
List
À ce moment, une erreur sera signalée lors de l'opération sur l'objet utilisateur !
Solution
Méthode 1 : Supprimer les éléments nuls
Exemple :
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); } }
<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>
(有group by是分组统计,找不到记录就是没有记录)
<br>
<span style="font-size: 14px"><em><br><br></em></span>
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!