001    package generics;
002    
003    public class Max {
004    
005            public static <A extends Number, B extends Number, C extends Number> Number get(
006                            A arg1, B arg2, C arg3) {
007                    Number max = arg1;
008                    if (max.doubleValue() < arg2.doubleValue())
009                            max = arg2;
010                    if (max.doubleValue() < arg3.doubleValue())
011                            max = arg3;
012                    return max;
013            }
014    
015            public static void main(String[] args) {
016    
017                    Number no = Max
018                                    .get(new Integer(99), new Integer(109), new Integer(200));
019                    System.out.println(no);
020                    Number no2 = Max.get(new Double(99), new Double(109), new Double(200));
021                    System.out.println(no2);
022                    Number no3 = Max
023                                    .get(new Integer(999), new Double(109), new Double(200));
024                    System.out.println(no3);
025            }
026    }