Revised: Wed May 11 17:07:35 CDT 2016
This page is included in the following Books:
Table of Contents
- Table of Contents
- Preface
- General background information
- Preview
-
Discussion and sample code
- Collection behavior prior to Java version 1.5
- An incorrect cast in code that doesn't use generics
- Dealing with angle brackets in cnxml body text
- Avoiding the requirement to cast through the use of generics
- Compile-time type safety provided by the use of generics
- Generic iterator syntax and the enhanced for loop
- Run the programs
- Summary
- What's next?
- Miscellaneous
- Complete program listings
Preface
This module is one in a collection of modules on Java Generics designed for teaching ITSE2317 - Java Programming (Intermediate) at Austin Community College in Austin, TX.
Many new features in Java version 1.5
When Java version 1.5 was released, it contained many new language features, including:
- Generics
- Enhanced for Loop
- Autoboxing/Unboxing
- Typesafe Enums
- Varargs
- Static Import
- Metadata
In addition to the new language features, Java version 1.5 also contained other new features such as new Look and Feel capabilities for Swing GUIs.
First in a series
This is the first module in a series of modules designed to teach you about Generics in Java version 1.5. Thismodule will teach you some of the rudimentary aspects of the generics capability . This module will also teach you how to use the enhanced for loop with collections.
Future modules will teach you how to use other aspects of generics
Viewing tip
I recommend that you open another copy of this module in a separate browser window and use the following links to easily find and view the Figuresand the Listings while you are reading about them.
Figures
- Figure 1 . Typical v1.5 compiler warning.
- Figure 2 . Warning with -Xlint:unchecked.
- Figure 3 . A ClassCastException.
- Figure 4 . A compiler error.
- Figure 5 . Iterator output.
Listings
- Listing 1 . Beginning of the program named Generics05.
- Listing 2 . Beginning of the runIt method.
- Listing 3 . An iterator.
- Listing 4 . Enhanced for loop.
- Listing 5 . The program named Generics01.
- Listing 6 . The program named Generics02.
- Listing 7 . The program named Generics03.
- Listing 8 . The program named Generics04.
- Listing 9 . The program named Generics05.
General background information
A new compiler warning
Have you recently tried to recompile a legacy program that has compiled and executed properly for many years only to get a compiler message similar to thatshown in Figure 1 ?
Figure 1 - Typical v1.5 compiler warning. |
---|
Note: Generics01.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details. |
If you followed up and recompiled as directed, you probably got a message from the compiler that looked something like the one shown in Figure 2 .
Figure 2 - Warning with -Xlint:unchecked. |
---|
Generics01.java:34: warning: [unchecked] unchecked call to add(E) as a member ofthe raw type ArrayList
var1.add(new Date());^
where E is a type-variable:E extends Object declared in class ArrayList
1 warning |