01. Introduction to Generics

What are generics?

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.

Why Generics?

There are three main reasons we use Java generics.

1) Less code, more functionality

We can re-use the same code with different parameters types.

LinkedList<Integer> intList = new LinkedList<>();
LinkedList<String> stringList = new LinkedList<>();

2) Safe code

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.

3) Less 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.

Take your Linux skills to the next level!

Linux for Beginners

Take your Linux skills to the next level! Try Linux & UNIX

Linux for Beginners doesn't make any assumptions about your background or knowledge of Linux. You need no prior knowledge to benefit from this book. You will be guided step by step using a logical and systematic approach. As new concepts, commands, or jargon are encountered they are explained in plain language, making it easy for anyone to understand.

$ Check price
24.9924.99Amazon 4.5 logo(101+ reviews)

More Linux & UNIX resources

Learn Enterprise Java Development for a Bright Career

Core Java, Volume I

Learn Enterprise Java Development for a Bright Career Try Java

Designed for serious programmers, this reliable, unbiased, no-nonsense tutorial illuminates key Java language and library features with thoroughly tested code examples. As in previous editions, all code is easy to understand, reflects modern best practices, and is specifically designed to help jumpstart your projects.

$ Check price
59.9959.99Amazon 4.5 logo(70+ reviews)

More Java resources