import java.util.ArrayList;
import java.util.List;
public class Example {
public static void main(String[] args) {
List<String> stringList = new ArrayList<>();
stringList.add("Java");
stringList.add("Example");
stringList.add("Text");
stringList.add(null);
stringList.forEach(str -> System.out.println(str.substring(1))); //error
}
}
In the above example as you can see I am iterating through a ArrayList of Strings that have a null value as well, so when I use forEach loop over it and iterate and do a subString on the array elements, I will get an NPE (Null Pointer Exception)
Output:Exception in thread "main" java.lang.NullPointerException: Cannot invoke "String.substring(int)" because "str" is null
at Example.lambda$main$0(Example.java:14)
at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
at Example.main(Example.java:14)
So as a developer you would need to handle the Unchecked NPE!
import java.util.ArrayList;
import java.util.List;
public class Example {
public static void main(String[] args) {
List<String> stringList = new ArrayList<>();
stringList.add("Java");
stringList.add("Example");
stringList.add("Text");
stringList.add(null);
stringList.forEach(str -> {
if(str == null) {
System.out.println("NULL Value");
} else {
System.out.println(str.substring(1));
}
});
}
}

- Create a Zip file using Java Code programmatically
- Eclipse : A java Runtime Environment (JRE) or Java Development kit (JDK) must be available
- How to Sort a LinkedList in Java
- Loading class com.mysql.jdbc.Driver. This is deprecated. The new driver class is com.mysql.cj.jdbc.Driver
- How to declare and initialize Array in Java Programming
- [Fix] java: integer number too large compilation error
- Java JDBC Connection with MySQL Driver in VS Code + Troubleshooting
- Reading .xls and .xlsx Excel file using Apache POI Java Library
- IntelliJ: Error: Could not find or load main class, java.lang.ClassNotFoundException
- How to get Client IP address using Java Code Example
- Truncate table using Java JDBC Example
- Struts 2 : There is no Action mapped for namespace [/] and action name [form] associated with context path [/proj]
- How to get file path in Idea IntelliJ IDE
- Java Generics explained with simple definition and examples
- Java SE 8 Update 301 available with various bug fixes and security improvements
- Java: Collect Stream as ArrayList or LinkedList
- Java JDBC Connection with PostgreSQL Driver Example
- How to check if Java main thread is alive
- How to fix Java nio NoSuchFileException wile reading a file
- Java 8+ get Day of the Week Examples with LocalDateTime, DateTime, ZonalDateTime and Instant classes
- Ways to Convert Integer or int to Long in Java
- [Java] How to throws Exception using Functional Interface and Lambda code
- [Fix] Spring Boot: mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure
- Java: The value of the local variable string is not used
- Java JDBC: Insert Java 8 LocalDate and Time using PreparedStatement
- [Solutions] Android Error in an XML file: aborting build. Eclipse SDK - Android
- Restore deleted Office 365 SharePoint group site - SharePoint
- [Solution] The connection to the remote PC was lost, preparing to reconnect - Windows RDP - Windows
- What is CA FE BA BE 00 00 00 3D in Java Class Bytecode - Java
- Android Wifi WPA2/WPA Connects and Disconnects issue - Android
- Steps to Compare Two files in Sublime Text Side-by-Side - Sublime-Text
- Using Document Map in Notepad++ - NotepadPlusPlus
- macOS Ventura XCode Command Line Tools Installation - MacOS