Skip to Content
Java® Programming 24-Hour Trainer
book

Java® Programming 24-Hour Trainer

by Yakov Fain
February 2011
Intermediate to advanced
504 pages
11h 46m
English
Wrox
Content preview from Java® Programming 24-Hour Trainer

Chapter 15

Introduction to Generics

In the previous lesson you saw an example of a collection that stores objects of different types (see Listing 14-2). During the run time, that program would test the actual type of each object and cast it to an appropriate type — Customer or Order. If some code adds an element of another (unexpected) data type, this will result in a casting error, IllegalCastException.

Starting from Java 5 you can use generics, which enables you to use parameterized data types — you can declare an object, collection, or method without specifying a concrete data type, shifting the definition of concrete types to the code that will be using these objects, collections, or methods. And the good part is that by using such generic notation you’ll get help from Java compiler, which will not allow you to use objects of the “wrong” types that don’t match the declaration. In other words, you can catch improper data types earlier, during the compilation phase.

Generics with Classes

Not only Java methods can have parameters, but classes can have them as well. Consider the ArrayList from Listing 14-2, which is a kitchen sink–like storage that can hold pretty much any object. But if you add the parameterized type Customer in angle brackets to the declaration of the customers collection (see Listing 15-1), any attempt to place an Order object there will generate the following compiler error:

 The method add(Customer) in the type ArrayList<Customer> is not applicable for ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

Java® Programming 24-Hour Trainer

Java® Programming 24-Hour Trainer

Yakov Fain

Publisher Resources

ISBN: 9780470889640Purchase bookAudio-VideoExamples