Java 集合隐式转换的Scala类型变量
这怎么不起作用Java 集合隐式转换的Scala类型变量,java,scala,Java,Scala,这怎么不起作用 implicit class ImplicitHelper[T <: IndexedSeq[String]](i: T) = { def bar() = ??? } val foo: Array[String] = ??? foo.bar // no implicit conversion … 隐式类隐式帮助[T非连续行表示视图,而不是直接层次结构: final class Array[T](_length: Int) extends java.io.Seria
implicit class ImplicitHelper[T <: IndexedSeq[String]](i: T) = {
def bar() = ???
}
val foo: Array[String] = ???
foo.bar // no implicit conversion …
隐式类隐式帮助[T非连续行表示视图,而不是直接层次结构:
final class Array[T](_length: Int) extends java.io.Serializable with java.lang.Cloneable
正如您所看到的,数组并没有扩展IndexedSeq
因此,唯一的意思是有一个从IndexedSeq
到Array
的转换,非连续线代表一个视图,而不是一个直接的层次:
final class Array[T](_length: Int) extends java.io.Serializable with java.lang.Cloneable
正如您所看到的,数组并没有扩展IndexedSeq
因此,唯一的意思是有一个从IndexedSeq
到Array
视图绑定的转换对我来说是有效的:
implicit class ImplicitHelper[T <% IndexedSeq[String]](i: T) {
def bar() = ???
}
隐式类隐式帮助[T视图绑定适合我:
implicit class ImplicitHelper[T <% IndexedSeq[String]](i: T) {
def bar() = ???
}
隐式类隐式帮助器[这不是一个让人困惑的问题。也许这有助于:一个让人困惑的问题。也许这有助于:谢谢!现在这很有意义…@vitalii使用视图绑定的答案很有效,功能强大!你也许应该接受他的答案,因为它实际上解决了问题。是的,刚才接受了,因为它回答了“为什么”这个问题,我的例子没有ork.我对另一个答案投了更高的票,因为它提供了一个很好的解决方案谢谢!这现在很有意义了…@vitalii的答案使用了视图绑定的作品,功能强大的东西!你也许应该接受他的答案,因为它实际上解决了问题。是的,刚才接受了,因为它回答了“为什么”我的例子不起作用的问题。我对另一个answe投了更高的票r因为它提供了一个很好的解决方案,所以非常感谢,我会更新答案。这显然也有效:隐式类隐式帮助[T](i:T)(隐式ev$1:T=>IndexedSeq[String])非常感谢,我会更新答案。这显然也有效:隐式类隐式帮助[T](i:T)(隐式ev$1:T=>IndexedSeq[String])