0

这个问题与This相关。为什么我在这里问而不是更新问题,因为这可能是一个有用的问题,并且与我之前提出的问题无关。

在测试类中,我如何转换以下实现:假设我有一张这样的地图:TreeMap<String, Map<Integer, Set<Student>>>

我想在我的测试类中强制转换默认chunkContext.getStepContext().getJobExecutionContext()值。Map<String, Object>TreeMap<String, Map<Integer, Set<Student>>>

现有的实现是:

Mockito.when(chunkContext.getStepContext().getJobExecutionContext().get("keyOfStudentMap"))
            .thenReturn((TreeMap<String, Map<Integer, Set<Student>>>)studentMap);

当我将鼠标悬停在 时getJobExecutionContext(),它会显示Map<String, Object>并希望以可以更改为的方式进行更改TreeMap<String, Map<Integer, Set<Student>>>

抱歉,如果有任何不清楚的地方。我可以根据您的评论更新问题。:)

4

1 回答 1

0

而不是这样做:

chunkContext.getStepContext().getJobExecutionContext()

你需要使用:

chunkContext.getStepContext().getStepExecution().getJobExecution().getExecutionContext()

它返回一个ExecutionContext.

现在,无论您输入什么作为 key ExecutionContext,在调用时都会得到原样get,因此您可以将其转换为原始类型(TreeMap<String, Map<Integer, Set<Student>>>在您的情况下)。

于 2020-05-06T08:11:37.013 回答