scala builder pattern 泛型函数调用 财富值45

2016-10-14 14:19发布

public abstract class ManagedChannelBuilder<T extends ManagedChannelBuilder<T>> {     // ... }

目前有这样一个泛型类,泛型类型是继承自ManagedChannelBuilder的。

1 普通方式调用

val builder = ManagedChannelBuilder.forTarget(""); builder.nameResolverFactory(new DnsNameResolverProvider) builder.build()

2 强制类型转换调用

val managedChannel = ManagedChannelBuilder.forTarget("")     .nameResolverFactory(new DnsNameResolverProvider())     .asInstanceOf[ManagedChannelBuilder].build();

目前上面2种方式虽然是可以正确的调用方法,但是我期望能够通过下面这种直接.的方式来调用而不需要强制类型转换。

val managedChannel = ManagedChannelBuilder.forTarget("")     .nameResolverFactory(new DnsNameResolverProvider()).build()

不知道在scala中是否可以这样,语法是什么样子的?

友情提示: 问题已经关闭,关闭后问题禁止继续编辑,回答。