/home/caleb/ASDV-Java/Semester 3/Assignments/lab6_generics_CalebFontenot/src/main/java/edu/slcc/asdv/caleb/lab6_generics_calebfontenot/Max.java |
package edu.slcc.asdv.caleb.lab6_generics_calebfontenot;
*
* @author caleb
*/
public class Max {
public static Comparable max(Comparable o1, Comparable o2)
{
if (o1.compareTo(o2) > 0) {
return o1;
} else {
return o2;
}
}
public static <E extends Comparable<E>> E maxSafe(E e1, E e2) {
if(e1.compareTo(e2) > 0) {
return e1;
} else {
return e2;
}
}
public static void main(String[] args)
{
System.out.println(max(1, 2));
try {
System.out.println(maxSafe(1, 2));
System.out.println(maxSafe("abc", "ABC"));
System.out.println();
//System.out.println(maxSafe(1, "two"));
GenericStack stackUnsafe = new GenericStack();
GenericStack<Integer> stackSafe = new GenericStack();
stackSafe.push(1); stackSafe.push(2);
System.out.println(stackSafe);
stackUnsafe.push(1); stackUnsafe.push("two");
System.out.println("This line compiles but crashes the program " + max(1, "two"));
} catch (ClassCastException e) {
System.err.println("RAW TYPES ARE UNSAFE " + e.getMessage()) ;
}
}
}