I'm not too good at generic programming, but i believe that E will have to be a Comparable because how else will the MergeSort know how to sort these elements. So, you have to write something like this for the class declaration:
public class MergeSort<E extends Comparable>
Saying E extends Comparable means E extends or implements the following class or interface, so in this case, we're saying E implements Comparable.
You may need to incorporate this information somewhere in your class, because i don't understand how else you can sort Objects if they can't be compared.
There are many other things you can do with these limitations. They are called wildcards.
The specified type must be a subclass of E
The specified type must be a superclass of E
All types
Hope that information helps you, and anyone interested in generic programming.