ホームページ  >  に質問  >  本文

java - scala builder pattern 泛型函数调用

黄舟黄舟2764日前495

全員に返信(1)返信します

  • 阿神

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

    私も同じ問題に遭遇しました。
    方法 1 と 2 を正しく使用する方法がわかりません。最も簡単な方法も

    リーリー

    実は

    リーリー

    返されるのは ManagedChannelBuilder[Any] です。実際、ここでは Any であってはなりません。しかし、

    リーリー

    その後、nameResolverFactory はこの T を Any として返します。
    その後、Any の build メソッドを呼び出すことになりますが、明らかにコンパイルを通過できません。

    もっと良い方法があるといいですね~

    =========================================== === ====
    更新

    問題を単純化します:

    リーリー

    これは元の定義です。これを
    def retA: A[_ <: A[_]] = ???
    に変更すれば問題ありません。

    これでうまくいきます

    リーリー

    同様に、ManagedChannelBuilder<?>に戻るときは、
    .asInstanceOf[ManagedChannelBuilder[_ <: ManagedChannelBuilder[_]]]

    だけです

    返事
    0
  • キャンセル返事