001 package generics; 002 003 public class Interval<T extends Number> { 004 private T start; 005 private T stop; 006 007 public Interval(T start, T stop){ 008 this.start = start; 009 this.stop = stop; 010 } 011 public T getStart(){ 012 return start; 013 } 014 015 public T getStop(){ 016 return stop; 017 } 018 019 public String toString(){ 020 return "[" + start + ", " + stop + "]"; 021 } 022 023 public double getLength(){ 024 return stop.doubleValue() - start.doubleValue(); 025 } 026 027 public static void main(String[] args) { 028 Interval<Integer> int1 = new Interval<Integer>(0,10); 029 System.out.println(int1); 030 System.out.println(int1.getLength()); 031 Interval<Double> int2 = new Interval<Double>(0.345d,10.5d); 032 System.out.println(int2); 033 System.out.println(int2.getLength()); 034 } 035 }