The two main advantages of using Genetics in Java are,
1. Type Safety:
When we use Generics, we force our code to follow stronger type checks at compile time. So all the errors that could come up during Runtime are converted into Compile time errors, thus making your code less prone to errors in production.
2. Eliminating Type Casting:
Once we introduce type safety using generics, the need for casting is eliminated, we can see this as a byproduct of type safety.
Let us look at both of the advantages with the help of a few examples.
Example 1: No Type Safety causing Runtime Exception
List list = new ArrayList();
list.add(20);
String name = (String) list.get(0);
System.out.println(name);
Output:
Example 2: Introducing Type Casting
List<String> list = new ArrayList<>();
list.add(20);
String name = (String) list.get(0);
System.out.println(name);
Compliation Error:
Example 3: Type Casting leading to bugs fix at an early stage of development
List<String> list = new ArrayList<>();
list.add("Mike");
String name = (String) list.get(0);
System.out.println(name);
Output:
Example 4: Elimination of the need for Type Casing
List<String> list = new ArrayList<>();
list.add("Mike");
String name = (String) list.get(0);
System.out.println(name);
Output:
Facing issues? Have Questions? Post them here! I am happy to answer!
Rakesh (He/Him) has over 14+ years of experience in Web and Application development. He is the author of insightful How-To articles for Code2care.
Follow him on: X
You can also reach out to him via e-mail: rakesh@code2care.org
- Get the current timestamp in Java
- Java Stream with Multiple Filters Example
- Java SE JDBC with Prepared Statement Parameterized Select Example
- Fix: UnsupportedClassVersionError: Unsupported major.minor version 63.0
- [Fix] Java Exception with Lambda - Cannot invoke because object is null
- 7 deadly java.lang.OutOfMemoryError in Java Programming
- How to Calculate the SHA Hash Value of a File in Java
- Java JDBC Connection with Database using SSL (https) URL
- How to Add/Subtract Days to the Current Date in Java
- Create Nested Directories using Java Code
- Spring Boot: JDBCTemplate BatchUpdate Update Query Example
- What is CA FE BA BE 00 00 00 3D in Java Class Bytecode
- Save Java Object as JSON file using Jackson Library
- Adding Custom ASCII Text Banner in Spring Boot Application
- [Fix] Java: Type argument cannot be of primitive type generics
- List of New Features in Java 11 (JEPs)
- Java: How to Add two Maps with example
- Java JDBC Transition Management using PreparedStatement Examples
- Understanding and Handling NullPointerException in Java: Tips and Tricks for Effective Debugging
- Steps of working with Stored Procedures using JDBCTemplate Spring Boot
- Java 8 java.util.Function and BiFunction Examples
- The Motivation Behind Generics in Java Programming
- Get Current Local Date and Time using Java 8 DateTime API
- Java: Convert Char to ASCII
- Deep Dive: Why avoid java.util.Date and Calendar Classes
- Keyboard shortcut to close tab in Notepad++ - NotepadPlusPlus
- [Tutorial] Write And Run Python Code In Notepad++ Editor - NotepadPlusPlus
- How to Add Notepad Shortcut to Desktop on Windows 11 - Windows-11
- Fix - SharePoint Online List column JSON formatting for person group field displays [object, Object] - SharePoint
- How to Exit a File in Terminal (Bash/Zsh) - Linux
- Spring Boot CRUD Examples using JDBCTemplate - Java
- [Fix] Spring Boot: java.sql.SQLSyntaxErrorException: Unknown database - Java
- [Mac] To open Eclipse you need to install the legacy java se 6 runtime - Mac-OS-X