Чего должен достичь scala.mobile? - PullRequest
4 голосов
/ 23 апреля 2011

... и почему пакет это вводящее в заблуждение имя (я предполагал, что оно как-то связано с JavaME или мобильными / смартфонами)?

Я не нашел ссылок в интернетео scala.mobile.Code или scala.mobile.Location вообще и мне не удалось ничего сделать с этими классами, кроме получения ClassCastExcetion с или NoSuchMethodError с.

На самом деле даже нетодин тест на scala.mobile в дереве тестов Scala, который может помочь в понимании этого кода.

Классы действительно пахнут так, будто их давно забыли в дереве исходных кодов и с тех пор случайно выпустили.

Может быть, я что-то пропустил в них?

Обновление: scala.mobile было удалено в Scala 2.9.

Ответы [ 2 ]

4 голосов
/ 23 апреля 2011

Я только что проверил исходный код.

Когда несколько лет назад 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

Похоже, еще одна реализация в стандартной библиотеке отражения - немного лучше.

3 голосов
/ 23 апреля 2011

Описание Location в значительной степени объясняет, о чем идет речь:

Класс Location предоставляет метод create для создания объектов из сетевого расположения путем указания URL-адреса банки./ файл класса.

Может использоваться удаленными участниками.Может быть.

А почему у него это обманчивое имя?Что ж, в 2004 году смартфоны имели очень низкий уровень проникновения, так что, возможно, ассоциация была не такой уж сильной.

...