后备方法和实际方法应该返回相同的返回类型吗?
@HystrixCommand(fallbackMethod = "reliable")
public String readingList() {
URI uri = URI.create("http://localhost:8090/recommended");
return this.restTemplate.getForObject(uri, String.class);
}
public String reliable() {
return "Cloud Native Java (O'Reilly)";
}
我应该怎么做才能从后备方法阅读列表
返回字符串并从实际方法可靠
返回一些对象?
最佳答案
根据定义,后备方法意味着如果发生某些事情,则替换真实方法。
您不能返回不同的类型。这没有任何意义。
因此,除了少数异常(exception),方法签名必须完全相同。
- 返回类型必须相同或协变
- 方法参数必须相同。您还可以添加一个
Throwable
类型的额外参数来获取调用回退的异常。
关于java - 断路器模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47922096/