Generics allow an object or method to operate on various types. In other words, they allow for the same code to be run regardless of the type. For example, a linked list that stores data can use Java generics to hold elements of a String, Integer, or Double, all using the same code.
There are three main reasons we use Java generics.
We can re-use the same code with different parameters types.
LinkedList<Integer> intList = new LinkedList<>(); LinkedList<String> stringList = new LinkedList<>();
Generics allow for safer code, as the compiler now knows which types to check for.
Before we had to cast each type.
LinkedList intList = new LinkedList(); intList.add(new Integer(0)); Integer x = (Integer) intList.iterator.next(); ^
The casting is annoying, prone to error, and introduces clutter.
Lastly, generics gets rid of clutter by allowing programmers to express their intent, and mark the object with a particular data type.
LinkedList<Integer> intList = new LinkedList<>(); intList.add(new Integer(0)); Integer x = intList.iterator().next();
When we use
List<Integer> we are declaring that we have not just a list, but one of type
Integer. So the compiler checks that everything we use with
add() is an Integer value.
Additionally, when we access our
intList, Java knows that it will return an Integer. Since most errors arise in compile time, this saves us loads of time from debugging runtime errors.
Command Line Kung Fu is packed with dozens of tips and practical real-world examples. You won't find theoretical examples in this book. The examples demonstrate how to solve actual problems. The tactics are easy to find, too. Each chapter covers a specific topic and groups related tips and examples together.$ Check price
A book that is simple, direct, terse with easy examples. Simple example programs to guide you as you go, with test exercises at the end for you to judge for yourself how well you understand the program. Learn java faster and efficiently with Java: A Beginner's Guide.$ Check price