Skip to content

Instantly share code, notes, and snippets.

@koehn
Last active January 3, 2016 09:39
Show Gist options
  • Save koehn/8444310 to your computer and use it in GitHub Desktop.
Save koehn/8444310 to your computer and use it in GitHub Desktop.
Test your Java generics knowledge with this pop quiz: which are the valid statements?
import java.util.List;
public class GenericsQuiz {
List<Number> listOfNumber;
List<? extends Number> listOfExtendsNumber;
List<? super Number> listOfSuperNumber;
List<Integer> listOfInteger;
List<? extends Integer> listOfExtendsInteger;
List<? super Integer> listOfSuperInteger;
Integer integer;
Number number;
public void assign() {
listOfNumber = listOfExtendsNumber;
listOfNumber = listOfSuperNumber;
listOfNumber = listOfInteger;
listOfNumber = listOfExtendsInteger;
listOfNumber = listOfSuperInteger;
listOfExtendsNumber = listOfNumber;
listOfExtendsNumber = listOfSuperNumber;
listOfExtendsNumber = listOfInteger;
listOfExtendsNumber = listOfExtendsInteger;
listOfExtendsNumber = listOfSuperInteger;
listOfSuperNumber = listOfNumber;
listOfSuperNumber = listOfExtendsNumber;
listOfSuperNumber = listOfInteger;
listOfSuperNumber = listOfExtendsInteger;
listOfSuperNumber = listOfSuperInteger;
listOfInteger = listOfNumber;
listOfInteger = listOfExtendsNumber;
listOfInteger = listOfSuperNumber;
listOfInteger = listOfExtendsInteger;
listOfInteger = listOfSuperInteger;
listOfExtendsInteger = listOfNumber;
listOfExtendsInteger = listOfExtendsNumber;
listOfExtendsInteger = listOfSuperNumber;
listOfExtendsInteger = listOfInteger;
listOfExtendsInteger = listOfSuperInteger;
listOfSuperInteger = listOfNumber;
listOfSuperInteger = listOfExtendsNumber;
listOfSuperInteger = listOfSuperNumber;
listOfSuperInteger = listOfInteger;
listOfSuperInteger = listOfExtendsInteger;
}
public void add() {
listOfNumber.add(integer);
listOfNumber.add(number);
listOfExtendsNumber.add(integer);
listOfExtendsNumber.add(number);
listOfSuperNumber.add(integer);
listOfSuperNumber.add(number);
listOfInteger.add(integer);
listOfInteger.add(number);
listOfExtendsInteger.add(integer);
listOfExtendsInteger.add(number);
listOfSuperInteger.add(integer);
listOfSuperInteger.add(number);
}
public void get() {
number = listOfNumber.get(0);
number = listOfExtendsNumber.get(0);
number = listOfSuperNumber.get(0);
number = listOfInteger.get(0);
number = listOfExtendsInteger.get(0);
number = listOfSuperInteger.get(0);
integer = listOfNumber.get(0);
integer = listOfExtendsNumber.get(0);
integer = listOfSuperNumber.get(0);
integer = listOfInteger.get(0);
integer = listOfExtendsInteger.get(0);
integer = listOfSuperInteger.get(0);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment