public class demo1 { static Comparable unsafeMax(Comparable first, Comparable second) { if (second.compareTo(first) > 0) { return second; } return first; } static > T max(T first, T second) { if (second.compareTo(first) > 0) { return second; } return first; } static void main(String[] args) { Integer first = 5; Integer second = 7; Integer dangerResult = (Integer) unsafeMax(first, second); Integer result = max(first, second); } }