将Java时钟传递给控制器 (映射类)

问题描述 投票:2回答:1

我需要将java Clock传递给控制器​​,但由于Clock是抽象类,因此会引发error。这是一个Web应用程序。我基本上不需要时钟对象作为控制器参数,但是由于我在单元测试中初始化了控制器,因此该参数是必需的。有什么想法吗 ?基本上我正在尝试这样做

@RequestMapping(value = "/abc", method = RequestMethod.GET)
public ModelAndView getRequests(@PathVariable("name") String name, @PathVariable("age") int age, HttpServletResponse response, HttpServletRequest request, Clock clock) {
    someMethod(clock) //-- for unit testing only
}

获取servlet异常。

Failed to instantiate [java.time.Clock]: Is it an abstract class?

有什么想法吗?

java exception servlets abstract
1个回答
0
投票

是,Java Clock是一个抽象类。您可以使用FixedClock实例化您的测试中的Clock,如下所示通过您的控制器

Clock fixedClock = Clock.fixed(Instant.now(), ZoneId.systemDefault())
© www.soinside.com 2019 - 2024. All rights reserved.