Почему интерфейс JMSProducer не расширяет java.lang.Autocloseable?
Согласно спецификации JMS для классических API
The Connection, Session, MessageProducer, MessageConsumer and
QueueBrowser interfaces have been modified to extend the
java.lang.Autocloseable interface. This means that applications can
create these objects using a Java SE 7 try-with-resources statement which
removes the need for applications to explicitly call close() when these
objects are no longer required.
И после JMS2 для классических API
The new JMSContext and JMSConsumer interfaces also extend the
java.lang.Autocloseable interface.
Вопрос, почему JMSProducer не расширяет AutoCloseable?
1 ответ
Решение
Последний абзац из Javadoc JMSProducer
Экземпляры JMSProducer предназначены для облегченных объектов, которые можно создавать свободно и которые не потребляют значительных ресурсов. Поэтому этот интерфейс не предоставляет закрытый метод.
да, это сбивает с толку, но обратите внимание, что MessageProducer реализует Autocloseable, а JMSProducer - нет.