Чем мой код не идентичен по функционалу тому, что находится в топе в комментах? Вот вариан с комментов:
@Override
        public int compare(T o1, T o2)
        {
            int result = 0;
            for (Comparator comparator : comparators)
            {
                result = comparator.compare(o1, o2);
                if (result != 0) break;
            }
            return result;
        }
У меня даже лучше - не создаю лишгих переменных, код компактнее.