Skip to content

Commit 2c16595

Browse files
BAEL-3853: Helpful NPE in Java 14
1 parent 9290f7c commit 2c16595

2 files changed

Lines changed: 93 additions & 0 deletions

File tree

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
package com.baeldung.java14.helpfulnullpointerexceptions;
2+
3+
public class HelpfulNullPointerException {
4+
5+
public static void main(String[] args) {
6+
Employee employee = null;
7+
employee.getName();
8+
}
9+
10+
public String getEmployeeEmailAddress(Employee employee) {
11+
String emailAddress = employee.getPersonalDetails().getEmailAddress().toLowerCase();
12+
return emailAddress;
13+
}
14+
15+
static class Employee {
16+
String name;
17+
PersonalDetails personalDetails;
18+
19+
public String getName() {
20+
return name;
21+
}
22+
23+
public void setName(String name) {
24+
this.name = name;
25+
}
26+
27+
public PersonalDetails getPersonalDetails() {
28+
return personalDetails;
29+
}
30+
31+
public void setPersonalDetails(PersonalDetails personalDetails) {
32+
this.personalDetails = personalDetails;
33+
}
34+
}
35+
36+
static class PersonalDetails {
37+
String emailAddress;
38+
String phone;
39+
40+
public String getEmailAddress() {
41+
return emailAddress;
42+
}
43+
44+
public void setEmailAddress(String emailAddress) {
45+
this.emailAddress = emailAddress;
46+
}
47+
48+
public String getPhone() {
49+
return phone;
50+
}
51+
52+
public void setPhone(String phone) {
53+
this.phone = phone;
54+
}
55+
}
56+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
package com.baeldung.java14.helpfulnullpointerexceptions;
2+
3+
import org.junit.Test;
4+
5+
import static com.baeldung.java14.helpfulnullpointerexceptions.HelpfulNullPointerException.Employee;
6+
import static com.baeldung.java14.helpfulnullpointerexceptions.HelpfulNullPointerException.PersonalDetails;
7+
import static org.assertj.core.api.Assertions.assertThat;
8+
9+
public class HelpfulNullPointerExceptionUnitTest {
10+
11+
@Test (expected = NullPointerException.class)
12+
public void givenAnEmptyPersonalDetails_whenEmailAddressIsAccessed_thenThrowNPE() {
13+
var helpfulNPE = new HelpfulNullPointerException();
14+
15+
var employee = new Employee();
16+
employee.setName("Eduard");
17+
employee.setPersonalDetails(new PersonalDetails());
18+
helpfulNPE.getEmployeeEmailAddress(employee);
19+
}
20+
21+
@Test
22+
public void givenCompletePersonalDetails_whenEmailAddressIsAccessed_thenSuccess() {
23+
var helpfulNPE = new HelpfulNullPointerException();
24+
var emailAddress = "[email protected]";
25+
26+
var employee = new Employee();
27+
employee.setName("Eduard");
28+
29+
var personalDetails = new PersonalDetails();
30+
personalDetails.setEmailAddress(emailAddress.toUpperCase());
31+
personalDetails.setPhone("1234");
32+
employee.setPersonalDetails(personalDetails);
33+
34+
assertThat(helpfulNPE.getEmployeeEmailAddress(employee)).isEqualTo(emailAddress);
35+
}
36+
37+
}

0 commit comments

Comments
 (0)