0

根据经典 API 的 JMS 规范

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.

在经典 API 的 JMS2 之后

The new JMSContext and JMSConsumer interfaces also extend the
java.lang.Autocloseable interface.

问题是为什么 JMSProducer 不扩展 AutoCloseable?

4

1 回答 1

1

JMSProducer 的 javadoc 的最后一段

JMSProducer 的实例旨在成为可以自由创建且不消耗大量资源的轻量级对象。因此,此接口不提供关闭方法。

是的,这令人困惑,但请注意 MessageProducer 确实实现了 Autocloseable,但 JMSProducer 没有。

于 2013-12-27T08:50:02.110 回答