Close
Close Window

Masters of Engineering Bridge Course

Chapter 10 Queues and Generics

Show Source |    | About   «  9.3. Unit 9 Program 1 Placeholder   ::   Contents   ::   10.2. Queues  »

10.1. More on Generics

10.1.1. Objectives

Upon completion of this module, students will be able to:

  • Determine when a generic needs to be bounded

  • Write and use methods and classes that use bounded generic parameters

  • Write and use bounded generic methods

  • Become familiar with syntax for wildcards

10.1.1.1. Suggested Reading:

Java Interlude 8 Generics Once Again from Data Structures and Abstractions with Java, 4th edition by Frank M. Carrano and Timothy Henry

10.1.2. Interactive: More on Generics [10:53]

Follow Along, Practice and Explore

In Eclipse, use the Project > Download Assignment… menu command to download the exercise project named “ex10.01-Generics”. Use this example to follow along with the following video. Feel free to experiment.

Refer to 01.02: Lab: LightBot for Beginners if you need to review the instructions for downloading Eclipse projects.

Video Slides 10.1.2.1-MoreOnGenerics.pdf

10.1.3. Reflecting on Generics [17:26]

10.1.4. Sample Declarations of Generic Methods Explained

The format for declaring a Generic method is as follows:

methodModifiers <genericParameters> returnType methodName(methodParameters)

Note the use of the generic parameters placed inside the angle brackets.

Example 1

Below is one example of how you may declare a Generic method.

public static <T> void sort(T[] items, Comparator<? super T> comp)

The T following the static keyword and enclosed within the angle brackets represents the generic parameter for the sort method. The T should also appear in the method parameter list.

The second method parameter Comparator<? super T> comp is our way of specifying that comp must be an object that implements the Comparator interface for type T or for a superclass of type T

We use this approach to specify restrictions, for example, you can define a class that implements Comparator<Number> and use it to sort an array of Integer objects or an array of Double objects

Example 2

Below is another example Generic method declaration.

public static <T extends Comparable<T>> void sort(List<T> list)

The use of <T extends Comparable<T>> specifies that the generic parameter T must implement the interface Comparable<T>. The method parameter list (the object being sorted) is of type List<T>.

10.1.5. Checkpoint 1

10.1.6. Interactive: Bounded Wildcard Examples

Follow Along, Practice and Explore

In Eclipse, use the Project > Download Assignment… menu command to download the exercise project named “ex10.01-Generics”. Use this example to follow along with the following video. Feel free to experiment.

Refer to 01.02: Lab: LightBot for Beginners if you need to review the instructions for downloading Eclipse projects.

10.1.6.1. Related Resources

10.1.7. Programming Practice: Generics 1

   «  9.3. Unit 9 Program 1 Placeholder   ::   Contents   ::   10.2. Queues  »

Close Window