2017-12-21 31 views
0

대체 방법과 실제 메서드는 동일한 반환 유형을 반환해야합니다. 내가 대체 방법 reading list에서 문자열을 반환하고 실제 방법 reliable에서 일부 개체를 반환 무엇을해야회로 차단기 패턴

@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)"; 
    } 

?

답변

3

대체로 fallback 방법은 어떤 일이 발생하면 실제 방법으로 대체하는 것을 의미합니다.
다른 유형을 반환 할 수 없습니다. 그것은 아무 의미가 없습니다.
따라서 메소드 서명은 몇 가지 예외를 제외하고는 정확히 동일해야합니다.

  1. 반환 형식이 동일 또는
  2. 방법 인수를 공변하는 동일해야한다. 그리고 Throwable 유형의 추가 인수를 추가하여 대체가 호출 된 예외를 가져올 수 있습니다.
+0

공변 반환 유형을 사용해도 괜찮습니다. –