Bounded Type QuizJ8 Home « Bounded Type Quiz

The questions in this quiz on Java are on the topics covered in the Generics section of the site. The table below lists the lesson used for each quiz, a description of the lesson content and the quiz number and questions associated with that lesson.

Lesson Summary

Click on a lesson in the table to go to that lesson for a refresher on the topics for that quiz.

Click on a quiz in the table to go straight to the quiz for a particular lesson.

Generics Lessons Description Quiz Info.
Lesson 1 - Generic BasicsIn our first lesson on on generics we unravel the terminology behind java generics and look at some of the strange syntax we get when using it.Quiz1
7 questions
Lesson 2 - Raw/Generic Type ComparisonIn this lesson we compare raw and generic types to see the advantages of using generics.Quiz2
6 questions
Lesson 3 - Generic InterfacesIn this lesson we look at generic interfaces and how to apply them in our Java code.Quiz3
6 questions
Lesson 4 - Generic ClassesThis lesson is about generic classes.Quiz4
6 questions
Lesson 5 - Bounded TypeIn this lesson on Java generics we investigate invariance and Bounded Type.This quiz.
7 questions
Lesson 6 - Unbounded Wildcard TypeIn this lesson we learn about generic Unbounded Wildcard Type.Quiz6
6 questions
Lesson 7 - Upper Bounded Wildcard TypeThis lesson on generics is about upper bounded wildcard types.Quiz7
6 questions
Lesson 8 - Lower Bounded Wildcard TypeThis lesson on generics is about lower bounded wildcard types.Quiz8
6 questions
Lesson 9 - Generic MethodsThis lesson is about generic methods.Quiz9
6 questions
Lesson 10 - Generic ConstructorsIn our final lesson on generics we look at generic constructors.Quiz10
7 questions

Generics Quiz 5

The quiz below tests your knowledge of the material learnt in Generics - Lesson 5 - Bounded Type.

Question 1 : How does the diamond operator work ?
- The diamond operator works through <i>inference</i>.
Question 2 : Which of the following code snippets are valid?
List<Object> aList = new ArrayList<String>(); // 1
List<String> aList = new ArrayList<String>(); // 2
- Generics are by design non-polymorphic, which means for any two distinct types Type1 and Type2, Type1 is neither a supertype or subtype of ListType2. So only answer 3 is correct.
Question 3 : Generics are by design what?
- Generics are by design <i>invariant</i> (non-polymorphic).
Question 4 : What is the following code snippet an example of <T extends Number> ?
- T extends Number is an example of a <i>bounded type</i>.
Question 5 : Which object type can be passed to this classes constructor?
public class BoundedType<T extends Number> {

    // Generic object declaration
    private final T genericNumberObj;
    // Pass reference to object of type T to our constructor

    public BoundedType(T genericNumberObj) {
        this.genericNumberObj = genericNumberObj;
- Only objects that extend <code>Number</code> are valid and so <code>Byte</code> is the answer.
Question 6 : Can we use primitives with Bounded Type?
- Primitives are invalid for any generic.
Question 7 : Is the following code snippet an example of a bounded type?
<? extends Number>
- The code snippet <code>? extends Number</code> is an example of a <i>bounded wildcard type</i> not a <i>bounded type</i>.
Quiz Progress Bar Please select an answer

What's Next?

In the next quiz we test your knowledge of Unbounded Wildcard Type.