Generics Java Tutorial

The type argument for T must be either Number, or a class derived from Number.

class Stats { 
  T[] nums;
   
  Stats(T[] o) { 
    nums = o; 
  } 
 
  double average() { 
    double sum = 0.0;
    for(int i=0; i < nums.length; i++) 
      sum += nums[i].doubleValue();
    return sum / nums.length;
  } 

 
public class MainClass { 
  public static void main(String args[]) { 
    Integer inums[] = { 1, 2, 3, 4, 5 };
    Stats iob = new Stats(inums);
    double v = iob.average();
    System.out.println("iob average is " + v);
    Double dnums[] = { 1.1, 2.2, 3.3, 4.4, 5.5 };
    Stats dob = new Stats(dnums);
    double w = dob.average();
    System.out.println("dob average is " + w);
  } 
}
iob average is 3.0
dob average is 3.3