Moved the HelpfulNullPointerException code to the npe package.

Merge remote-tracking branch 'upstream/master'
This commit is contained in:
Greg Martin
2020-04-27 18:47:18 -04:00
1843 changed files with 31441 additions and 5728 deletions
+1
View File
@@ -7,3 +7,4 @@ This module contains articles about Java 14.
- [Guide to the @Serial Annotation in Java 14](https://www.baeldung.com/java-14-serial-annotation)
- [Java Text Blocks](https://www.baeldung.com/java-text-blocks)
- [Pattern Matching for instanceof in Java 14](https://www.baeldung.com/java-pattern-matching-instanceof)
- [Helpful NullPointerExceptions in Java 14](https://www.baeldung.com/java-14-nullpointerexception)
@@ -0,0 +1,56 @@
package com.baeldung.java14.npe;
public class HelpfulNullPointerException {
public static void main(String[] args) {
Employee employee = null;
employee.getName();
}
public String getEmployeeEmailAddress(Employee employee) {
String emailAddress = employee.getPersonalDetails().getEmailAddress().toLowerCase();
return emailAddress;
}
static class Employee {
String name;
PersonalDetails personalDetails;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public PersonalDetails getPersonalDetails() {
return personalDetails;
}
public void setPersonalDetails(PersonalDetails personalDetails) {
this.personalDetails = personalDetails;
}
}
static class PersonalDetails {
String emailAddress;
String phone;
public String getEmailAddress() {
return emailAddress;
}
public void setEmailAddress(String emailAddress) {
this.emailAddress = emailAddress;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
}
}
@@ -0,0 +1,37 @@
package com.baeldung.java14.npe;
import org.junit.Test;
import static com.baeldung.java14.helpfulnullpointerexceptions.HelpfulNullPointerException.Employee;
import static com.baeldung.java14.helpfulnullpointerexceptions.HelpfulNullPointerException.PersonalDetails;
import static org.assertj.core.api.Assertions.assertThat;
public class HelpfulNullPointerExceptionUnitTest {
@Test (expected = NullPointerException.class)
public void givenAnEmptyPersonalDetails_whenEmailAddressIsAccessed_thenThrowNPE() {
var helpfulNPE = new HelpfulNullPointerException();
var employee = new Employee();
employee.setName("Eduard");
employee.setPersonalDetails(new PersonalDetails());
helpfulNPE.getEmployeeEmailAddress(employee);
}
@Test
public void givenCompletePersonalDetails_whenEmailAddressIsAccessed_thenSuccess() {
var helpfulNPE = new HelpfulNullPointerException();
var emailAddress = "[email protected]";
var employee = new Employee();
employee.setName("Eduard");
var personalDetails = new PersonalDetails();
personalDetails.setEmailAddress(emailAddress.toUpperCase());
personalDetails.setPhone("1234");
employee.setPersonalDetails(personalDetails);
assertThat(helpfulNPE.getEmployeeEmailAddress(employee)).isEqualTo(emailAddress);
}
}
@@ -4,7 +4,6 @@ This module contains articles about Java 8 core features
### Relevant Articles:
- [How to Delay Code Execution in Java](https://www.baeldung.com/java-delay-code-execution)
- [Run a Java Application from the Command Line](https://www.baeldung.com/java-run-jar-with-arguments)
- [Java 8 Stream skip() vs limit()](https://www.baeldung.com/java-stream-skip-vs-limit)
- [Guide to Java BiFunction Interface](https://www.baeldung.com/java-bifunction-interface)
@@ -0,0 +1,5 @@
### Relevant Articles:
- [Generating Random Dates in Java](https://www.baeldung.com/java-random-dates)
- [Creating a LocalDate with Values in Java](https://www.baeldung.com/java-creating-localdate-with-values)
- [[<-- Prev]](/core-java-modules/core-java-datetime-java8-1)
@@ -4,9 +4,9 @@
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<artifactId>core-java-datetime-java8</artifactId>
<artifactId>core-java-8-datetime</artifactId>
<version>${project.parent.version}</version>
<name>core-java-datetime-java8</name>
<name>core-java-8-datetime</name>
<packaging>jar</packaging>
<parent>
@@ -64,8 +64,8 @@
</build>
<properties>
<maven.compiler.source>1.9</maven.compiler.source>
<maven.compiler.target>1.9</maven.compiler.target>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<joda-time.version>2.10</joda-time.version>
<!-- testing -->
<assertj.version>3.6.1</assertj.version>
@@ -11,31 +11,31 @@ public class LocalDateExampleUnitTest {
@Test
public void givenValues_whenUsingOfMethod_thenLocalDate() {
assertEquals("2020-01-08", date.getCustomDateOne(2020, 1, 8));
assertEquals("2020-01-08", date.getCustomDateOne(2020, 1, 8).toString());
}
@Test
public void givenValuesWithMonthEnum_whenUsingOfMethod_thenLocalDate() {
assertEquals("2020-01-08", date.getCustomDateTwo(2020, Month.JANUARY, 8));
assertEquals("2020-01-08", date.getCustomDateTwo(2020, Month.JANUARY, 8).toString());
}
@Test
public void givenValues_whenUsingEpochDay_thenLocalDate() {
assertEquals("2020-01-08", date.getDateFromEpochDay(18269));
assertEquals("2020-01-08", date.getDateFromEpochDay(18269).toString());
}
@Test
public void givenValues_whenUsingYearDay_thenLocalDate() {
assertEquals("2020-01-08", date.getDateFromYearAndDayOfYear(2020, 8));
assertEquals("2020-01-08", date.getDateFromYearAndDayOfYear(2020, 8).toString());
}
@Test
public void givenValues_whenUsingParse_thenLocalDate() {
assertEquals("2020-01-08", date.getDateFromString("2020-01-08"));
assertEquals("2020-01-08", date.getDateFromString("2020-01-08").toString());
}
@Test
public void givenValuesWithFormatter_whenUsingParse_thenLocalDate() {
assertEquals("2020-01-08", date.getDateFromStringAndFormatter("8-Jan-2020", "d-MMM-yyyy"));
assertEquals("2020-01-08", date.getDateFromStringAndFormatter("8-Jan-2020", "d-MMM-yyyy").toString());
}
}
@@ -13,4 +13,4 @@ This module contains articles about the Date and Time API introduced with Java 8
- [How to Get the Start and the End of a Day using Java](http://www.baeldung.com/java-day-start-end)
- [Set the Time Zone of a Date in Java](https://www.baeldung.com/java-set-date-time-zone)
- [Comparing Dates in Java](https://www.baeldung.com/java-comparing-dates)
- [Generating Random Dates in Java](https://www.baeldung.com/java-random-dates)
- [[Next -->]](/core-java-modules/core-java-datetime-java8-2)
@@ -4,9 +4,9 @@
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<artifactId>core-java-datetime-java8</artifactId>
<artifactId>core-java-8-datetime</artifactId>
<version>${project.parent.version}</version>
<name>core-java-datetime-java8</name>
<name>core-java-8-datetime</name>
<packaging>jar</packaging>
<parent>
@@ -64,8 +64,8 @@
</build>
<properties>
<maven.compiler.source>1.9</maven.compiler.source>
<maven.compiler.target>1.9</maven.compiler.target>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<joda-time.version>2.10</joda-time.version>
<!-- testing -->
<assertj.version>3.6.1</assertj.version>

Some files were not shown because too many files have changed in this diff Show More