我在 java 流 api 中面临空指针异常我的模特班:public class Member { String name; String age; String gender; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getAge() { return age; } public void setAge(String age) { this.age = age; } public String getGender() { return gender; } public void setGender(String gender) { this.gender = gender; } }模型列表类:import java.util.List; public class MemberList { List<Member> member; int count; public List<Member> getMember() { return member; } public void setMember(List<Member> member) { this.member = member; } public int getCount() { return count; } public void setCount(int count) { this.count = count; } }Main.javaimport java.util.*;import java.util.stream.Collectors;public class Main { public static void main( String[] args ) { MemberList list = new MemberList( ); List< Member > memberList = new ArrayList<>( ); for ( int i = 0; i < 10; i++ ) { Member member = new Member( ); member.setAge( 10 + "" ); member.setName( null ); member.setGender( null ); memberList.add( member ); } Member member = null; memberList.add( member ); Member m = new Member( ); m.setGender( "MALE" ); list.setMember( memberList ); list.setCount( 10 ); list.getMember( ) .stream( ) .filter( obj -> Objects.nonNull( obj ) ) .filter( obj -> Objects.nonNull( obj.getGender( ) ) ) .filter( obj -> obj.getGender( ) .equals( "MALE" ) ) .collect( Collectors.toList( ) ); }}我知道如果成员列表对象为 null 意味着流给出空指针异常,getGender 等于 null 意味着 java 流给出空指针异常。现在我的问题是如何在java中处理这种空指针异常
3 回答

HUH函数
TA贡献1836条经验 获得超4个赞
Optional.ofNullable(list.getMember()) .orElseGet(Collections::emptyList) .stream()

一只名叫tom的猫
TA贡献1906条经验 获得超3个赞
NullPointerException(s) 可以通过从字面上说不允许null值进入您的对象来根除。
你害怕list.getMember()可能会回来null吗?
采取一些预防措施。
// Use annotations to mark that this method doesn't accept null
// Check for a possible null value
@NotNull
public List<Member> getMember() {
return Collections.unmodifiableList(member);
}
public void setMember(@NotNull final List<Member> member) {
this.member = member != null
? new ArrayList(member)
: Collections.emptyList();
}
添加回答
举报
0/150
提交
取消