Tuesday, April 1, 2014

Generic types in java - basic concept
































































I am trying to understand the concept of Generics in java. In the introduction to Generic Types, this example is given:
































































































Java Code:






































































public class Box {
private Object object;

public void set(Object object) { this.object = object; }
public Object get() { return object; }
}




































































"Since Since its methods accept or return an Object, you are free to pass in whatever you want, provided that it is not one of the primitive types." - I understand this.































But then it has been changed to a generic class:
































































































Java Code:






































































/**
* Generic version of the Box class.
* @param <T> the type of the value being boxed
*/
public class Box<T> {
// T stands for "Type"
private T t;

public void set(T t) { this.t = t; }
public T get() { return t; }
}




































































"As you can see, all occurrences of Object are replaced by T. A type variable can be any non-primitive type you specify: any class type, any interface type, any array type, or even another type variable."































We can use any type in place of an Object, because Object is a superclass of all classes. But T (or any other class) is not a superclass of all classes. So how do we justify any class being used in place of a random T or any other class?
































































Thank you in advance.































































































































No comments:

Post a Comment