简而言之,我试图用lambda语法编写这个:
bean = context.getBean(JmsListenerEndpointRegistry.class);
for (MessageListenerContainer listenerContainer : bean.getListenerContainers()) {
DefaultMessageListenerContainer container = (DefaultMessageListenerContainer) listenerContainer;
container.shutdown();
}
这是我的尝试,这个Lambda代码出了什么问题?
context.getBean(JmsListenerEndpointRegistry.class).getListenerContainers()
.forEach(DefaultMessageListenerContainer::shutdown());
答案 0 :(得分:1)
您已关闭,但您需要首先使用map
将所有项目转换为类型DefaultMessageListenerContainer
,然后您可以迭代蒸汽的每个元素并调用其shutdown
方法。
bean = context.getBean(JmsListenerEndpointRegistry.class);
bean.getListenerContainers().stream().map(e -> (DefaultMessageListenerContainer)e)
.forEach(DefaultMessageListenerContainer::shutdown);
此外,使用方法引用时,不能在方法名称后使用括号()
。