84669 Lernen von Personen
152542 Lernen von Personen
20005 Lernen von Personen
5487 Lernen von Personen
7821 Lernen von Personen
359900 Lernen von Personen
3350 Lernen von Personen
180660 Lernen von Personen
48569 Lernen von Personen
18603 Lernen von Personen
40936 Lernen von Personen
1549 Lernen von Personen
1183 Lernen von Personen
32909 Lernen von Personen
人生最曼妙的风景,竟是内心的淡定与从容!
刚好碰到同样的问题。1和2方法不知道你是怎么做到可以正确的使用的,最简单的办法也要
asInstanceOf[ManagedChannelBuilder[_]]
实际上
public static ManagedChannelBuilder<?> forTarget(String target) { return ManagedChannelProvider.provider().builderForTarget(target); }
返回的是ManagedChannelBuilder[Any]。实际上这里不应该是Any。而是一个
T extends ManagedChannelBuilder<T>
然后nameResolverFactory又把这个T返回了,作为Any。那么就变成调用Any的build方法了,显然这样过不了编译。
希望有更好的方法~
===================================================更新一下
简化一下问题:
class A[T <: A[T]] { def retA: A[_] = ??? def retT: T = ??? } class B extends A[B] (new B).retA.retT
这是原先的定义,如果把改成这样def retA: A[_ <: A[_]] = ???应该就没问题了。
def retA: A[_ <: A[_]] = ???
因此,可以这样
(new B).retA.asInstanceOf[A[_ <: A[_]]].retT.retT....
同理,返回ManagedChannelBuilder<?>的时候就.asInstanceOf[ManagedChannelBuilder[_ <: ManagedChannelBuilder[_]]]
ManagedChannelBuilder<?>
.asInstanceOf[ManagedChannelBuilder[_ <: ManagedChannelBuilder[_]]]
刚好碰到同样的问题。
1和2方法不知道你是怎么做到可以正确的使用的,最简单的办法也要
实际上
返回的是ManagedChannelBuilder[Any]。实际上这里不应该是Any。而是一个
然后nameResolverFactory又把这个T返回了,作为Any。
那么就变成调用Any的build方法了,显然这样过不了编译。
希望有更好的方法~
===================================================
更新一下
简化一下问题:
这是原先的定义,如果把改成这样
def retA: A[_ <: A[_]] = ???
应该就没问题了。
因此,可以这样
同理,返回
ManagedChannelBuilder<?>
的时候就.asInstanceOf[ManagedChannelBuilder[_ <: ManagedChannelBuilder[_]]]