Heim >Java >javaLernprogramm >Ausnahme durch Liste verursacht. Alle Elemente sind null
ArrayList ermöglicht das Hinzufügen von Nullwerten, was beim Konvertieren von Objekten in der Liste leicht zu java.lang.NullPointerException-Ausnahmen führen kann.
Szenario:
Datenbank wählt min(id) als ID, min(name) als Namen vom Benutzer aus, wobei 1=2;
Abfrage aus Es ist nicht so, dass es keinen Datensatz gibt, sondern einen Datensatz von null, null, der dazu führt, dass das Benutzerobjekt null ist
List
Zu diesem Zeitpunkt wird ein Fehler gemeldet, wenn das Benutzerobjekt bearbeitet wird!
Lösung
Methode 1: Nullelemente entfernen
Beispiel:
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>
Das obige ist der detaillierte Inhalt vonAusnahme durch Liste verursacht. Alle Elemente sind null. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!