Для этого нужно построить собственную логику, в основном потому, что только вы знаете, что должно делать базовое сравнение.
например, взять ваш пример, сравнить
int i = 10;
double d = 10.2;
они равны? Следует ли повысить целое число до двойного, а затем сравнить? Тогда нет, не равно.
Должно ли двойное число быть усечено до целого числа? Тогда да, они равны.
В вашем статическом методе вам необходимо проверить, одинаковы ли типы A & B, если да, то вы можете вызвать a.compareTo (b).
Если нет, то вам нужно решить, как вы хотите сравнивать различные типы, и реализовать это решение в своем статическом методе.
Надеюсь, это поможет