Java Generics in Java Generics in Java Generics Quiz

Generics in Java Fill in the blank to declare two type parameters for our new Pair class: class Pair _______ { }

I am putting in:

class Pair<T1, T2> { // omitted }

<T1, T2> turns greens but doesn't mark the question correct.

3 Answers

54,333 Points

There are probably multiple correct answers. I tried <string,integer>, <integer,string> , <float, box>, <hour, day>, <key, value>, <dog, cat> and all passed.

The official documentation says this:

Type Parameter Naming Conventions By convention, type parameter names are single, uppercase letters. This stands in sharp contrast to the variable naming conventions that you already know about, and with good reason: Without this convention, it would be difficult to tell the difference between a type variable and an ordinary class or interface name.

The most commonly used type parameter names are:

E - Element (used extensively by the Java Collections Framework)

K - Key

N - Number

T - Type

V - Value

S,U,V etc. - 2nd, 3rd, 4th types

You'll see these names used throughout the Java SE API and the rest of this lesson.

So maybe they were expecting two different uppercase letters (T and U for instance, although K and V is common practice for the Pair class, for key/value), or 2 different names (as KRIS NIKOLAISEN mentioned above).


Just type <T, T> and that's it.