#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: Для этого в файле класса должны быть сохранены символы отладки, чтобы можно было анализировать имена аргументов!