>  Q&A  >  본문

java - scala builder pattern 泛型函数调用

黄舟黄舟2714일 전452

모든 응답(1)나는 대답할 것이다

  • 阿神

    阿神2017-04-18 10:12:09

    방금에도 같은 문제가 발생했습니다.
    방법 1과 2를 어떻게 올바르게 사용할 수 있는지 모르겠습니다. 가장 간단한 방법도

    으아아아

    사실

    으아아아

    반환되는 것은 ManagedChannelBuilder[Any]입니다. 사실 여기서는 Any가 되어서는 안 됩니다. 그런데

    으아아아

    그런 다음 nameResolverFactory는 이 T를 Any로 반환합니다.
    그러면 분명히 컴파일을 통과할 수 없는 Any의 빌드 메소드를 호출하게 됩니다.

    더 좋은 방법이 있었으면 좋겠습니다~

    ============================================= === ====
    업데이트

    문제 단순화:

    으아아아

    원래 정의는 이렇습니다
    def retA: A[_ <: A[_]] = ???
    .

    그래서 이렇게 됩니다

    으아아아

    마찬가지로 ManagedChannelBuilder<?>으로 돌아갈 때는
    .asInstanceOf[ManagedChannelBuilder[_ <: ManagedChannelBuilder[_]]]

    회신하다
    0
  • 취소회신하다