...为什么the package这个误导性名称(我认为它与JavaME或移动/智能手机有关)?
我在互联网上找不到关于scala.mobile.Code
或scala.mobile.Location
的所有的参考文献,除了获取ClassCastExcetion
之外,我还没有设法对这些类做任何事情NoSuchMethodError
秒。
实际上,在Scala的测试树中,甚至没有一个针对scala.mobile
的测试可以帮助理解该代码。
这些课真的闻起来很久以前它们在源树中被遗忘了,并且从那时起就意外地被释放了。
也许我只是错过了一些关于他们的事情?
更新
在Scala 2.9中删除了scala.mobile
。
答案 0 :(得分:4)
我刚检查了源代码。
几年前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
看起来还是反射标准库中的另一个实现 - 稍微好一些。
答案 1 :(得分:3)
Location
的描述几乎解释了它的含义:
类
Location
提供了一种实例化对象的create方法 通过指定jar /类文件的URL地址从网络位置。
远程演员可能会使用它。也许
至于为什么它有这个误导性的名字?那么,早在2004年,智能手机的普及率就很低,所以也许这种关联并不是那么强大。