Monday, March 9, 2009

Generic Methods and Constructors  

0 comments

                

Type parameters can also be declared within method and constructor signatures to create generic methods and generic constructors. This is similar to declaring a generic type, but the type parameter's scope is limited to the method or constructor in which it's declared. 

/**
 * This version introduces a generic method.
 */
public class Box {

  private T t;  

  public void add(T t) {
  this.t = t;
  }

  public T get() {
  return t;
  }

  public void inspect(U u){
  System.out.println("T: " + t.getClass().getName());
  System.out.println("U: " + u.getClass().getName());
  }

  public static void main(String[] args) {
  Box integerBox = new Box();
  integerBox.add(new Integer(10));
  integerBox.inspect("some text");
  }
}
Here we've added one generic method, named inspect, that defines one type parameter, named U. This method accepts an object and prints its type to standard output. For comparison, it also prints out the type of T. For convenience, this class now also has a main method so that it can be run as an application. 

The output from this program is: 
T: java.lang.Integer
U: java.lang.String
         

What next?

You can also bookmark this post using your favorite bookmarking service:

Related Posts by Categories



Extension Factory Builder