Создание экземпляра приоритетной очереди с помощью компаратора из spring

#java #spring #priority-queue #comparator

#java #spring #приоритетная очередь #компаратор

Вопрос:

В рамках изучения spring я пытаюсь объявить компонент приоритетной очереди объектов MyMessageObject, но продолжаю получать следующее исключение BeanCreationException: «Ошибка при создании компонента с именем ‘messagesHeap’, определенным в URL [file:/my.app.spring.xml ]: Не удалось разрешить соответствующий конструктор»

Вот мои определения spring:

 <bean id="messagesHeap" class="java.util.PriorityQueue">
    <constructor-arg type="int" name="initialCapacity" value="100" index="0"/>
    <constructor-arg name="comparator" type="java.util.Comparator" index="1"  ref="orderComparator"/>
</bean>

<bean id="orderComparator" class="com.my.myComparator"/>
  

Класс myComparator реализует java.util.Компаратор по мере необходимости.

Что я здесь делаю не так?

Ответ №1:

попробуйте это

 <bean id="messagesHeap" class="java.util.PriorityQueue">
    <constructor-arg value="100" />
    <constructor-arg ref="orderComparator" />
</bean>
  

Комментарии:

1. Спасибо, это работает! Можете ли вы объяснить, почему исключение атрибута <i>name</i> решает проблему?

2. spring docs: Для этого в файле класса должны быть сохранены символы отладки, чтобы можно было анализировать имена аргументов!