Scala:关键字作为包名称

问题描述:

我试图使用Java库(无源代码可用),它定义了一些xxx.xxx.object包。 Scala抱怨软件包名称中存在“object”,所以我无法从它导入,也无法用完全限定名称引用它的类。Scala:关键字作为包名称

有没有办法解决它?

将对象包裹在'(1旁边的引号)中应该可以工作。

xxx.xxx.`object` 
+1

我注意到在2.8.1.final,这仍然不能帮助您在控制台 - 可能是一个错误的REPL代码。导入工作正常,但尝试使用您导入的某个符号,并且显然某些内容不会在后台转义。 – spieden 2010-11-24 03:37:43

要完成agilefallanswer,所述Scala Language Specification提到的进口是由id

id ::= plainid 
| ‘\`’ stringLit ‘\`’ 

的标识符也可以通过反引号之间(主机的任意字符串来形成系统可能会对哪些字符串对于标识符合法性施加一些限制)。标识符由除反引号本身之外的所有字符组成。

当需要访问作为Scala中保留字的Java标识符时,带反引号的字符串是一种解决方案。
例如,声明Thread.yield()是非法的,因为yield是Scala中的保留字。但是,这里有一个解决方法:

Thread.`yield`() 
+0

Thanks ... +1 for complementary info – 2009-08-01 15:03:04