代码之家  ›  专栏  ›  技术社区  ›  Germán

scala:关键字作为包名称

  •  18
  • Germán  · 技术社区  · 15 年前

    我正在尝试使用Java库(没有可用的源代码)来定义一些 XXX.XX.Objt对象 包裹。scala抱怨包名中存在“object”,因此我无法从中导入,也无法引用具有完全限定名的类。

    有办法解决吗?

    2 回复  |  直到 15 年前
        1
  •  29
  •   agilefall    15 年前

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

    xxx.xxx.`object` 
    
        2
  •  24
  •   Community CDub    7 年前

    完成 agilefall answer , the Scala Language Specification 提到进口是由 id :

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

    标识符也可以由反引号之间的任意字符串组成(主机系统可能会对哪些字符串对标识符是合法的进行一些限制)。然后,标识符由除后引号之外的所有字符组成。

    当需要访问Scala中保留单词的Java标识符时,BuffQueQueLee字符串是一种解决方案。
    例如,语句 Thread.yield() 是非法的,因为 yield 是scala中的保留字。但是,这里有一个解决方法:

    Thread.`yield`()