Generic Types
This lesson explains generic types in Java.
We'll cover the following...
We'll cover the following...
1.
Explain generic types?
0/500
Show Answer
1 / 3
Press + to interact
Java
class Demonstration {public static void main( String args[] ) {(new Printer<Integer>()).print(Integer.valueOf(555));(new Printer<String>()).print("print away");(new Printer<Object>()).print(new Demonstration());}}class Printer<T> {void print(T t) {System.out.println("printing : " + t.toString());}}
1.
What are generic methods?
0/500
Show Answer
1 / 4
Press + to interact
Java
class Demonstration {public static void main( String args[] ) {// Attempt to create a generic array// results in a ClassCastExceptionString[] array = Demonstration.<String>createArray(5);}static <T> T[] createArray(int size) {T[] array = (T[]) new Object[size];return array;}}
The above code fails because on line 5 there is an implicit cast from Object[]
to String[]
. Let's look at the erasure of the method to better understand the outcome. The rules of erasure tell us to replace the unbounded parameter T
with Object
.
Erasure of createArray method
Object[] createArray(int size) {
Object[] array = (Object[]) new Object[size];
return array;
}
...