Я только что проверил исходный код.
Когда несколько лет назад Scala изменила искажение имен файлов классов, и, похоже, люди забыли обновить эти классы соответствующим образом.
Поэтому мой ответбыть:
По крайней мере Location
имеет нет цели, потому что невозможно извлечь из этого что-либо разумное (кроме исключений), а Code
без Location
строго ограничено,Это работает, хотя, если вы передаете литерал класса в Code
напрямую:
import scala.mobile._
val c = new Code(classOf[scala.collection.mutable.StringBuilder])
c.apply[StringBuilder, String]("append")("Foo")
c.apply[String]("toString")() // returns "Foo"
c.apply[Int]("length")() // returns 3
Похоже, еще одна реализация в стандартной библиотеке отражения - немного лучше.