0

我只是一个新来的 groovy。

@Service
@CompileStatic
@Slf4j
class JourneyExecutionService {

    @Autowired
    List<DecisionEngineService> engineList;

    Map<String, DecisionEngineService> engineMap;
    void init(){
        engineMap = engineList.collectEntries {[it.getIndex(), it]}
        engineMap = engineList.stream().collect(Collectors.toMap(DecisionEngineService.getIndex, Functions.identity()))
    }

编译显示init函数中的两个语句都因错误而失败:

Cannot assign 'Map<Object, Object>' to 'List<String, DecisionEngineService>'Cannot resolve symbol 'getIndex'

java流样式中的第二条语句。

界面界面是这样的

interface DecisionEngineService {

    String getIndex()
}

任何人都可以帮助解决编译问题吗?谢谢

4

1 回答 1

1

明确地投射地图就足够了:

Map<String, DecisionEngineService> engineMap;

void init(){
  engineMap = (Map<String, DecisionEngineService>)engineList.collectEntries {[it.index, it]}
}
于 2021-07-13T08:44:05.327 回答