My first attempt would be to find a solution that does not use Reflection.
Besides, this Comparator implementation makes no sense to me at all. You are comparing two
String types which is very simple, yet you've complicated things hugely by adding into the Comparator the responsibility of obtaining those Strings through a method call on an Object, and then you go on to make it so generic that the implementation is horrible. A Comparator should do one thing and one thing only, and that's to compare two values. The responsibility of obtaining those values belongs elsewhere.