我正在尝试进入ActiveMq并按照以下链接中的教程进行操作:
创建ActiveMQMessageProducer类时,我收到以下行的编译时错误:
textMessage.setIntProperty(MSG_COUNT, messageCount);
错误是
“不能引用中定义的非最终局部变量messageCount 封闭范围“
我没有得到的是它是如何根据教程工作的。
由于
答案 0 :(得分:1)
本教程中存在一个错误,因为内部匿名类的方法不能引用非final变量。这是一个固定版本:
public void generateMessages() throws JMSException
{
for (int messageCount = 0; messageCount < 10; messageCount++)
{
final String text = "TP Message " + messageCount;
final int count = messageCount; // copy the value into a final
jmsTemplate.send(new MessageCreator()
{
public Message createMessage(Session session) throws JMSException
{
TextMessage textMessage = session.createTextMessage(text);
textMessage.setIntProperty(MSG_COUNT, count); // use it
return textMessage;
}
});
}
}