2011-01-07 127 views
2

創建一個名爲'val'的Java包,並在其中放入一個類並嘗試將其導入到Scala程序中。 scalac將失敗,並顯示以下錯誤消息:在Scala源文件中導入'val'包

[scalac] /tmp/Hello.scala:6: error: identifier expected but 'val' found. 
[scalac] import net.slimweb.ann.val.NotEmpty 
[scalac]      ^
[scalac] one error found 

任何想法?

回答

14
import net.slimweb.ann.`val`.NotEmpty 

後引號可以用於轉義符號:

scala> val `val` = 1 
val: Int = 1 

scala> class `val` 
defined class val 

除了使用它們與保留名稱定義的符號,或調用具有關鍵字作爲方法(例如,方法與名爲遺留Java代碼),他們也可以用於符號與他們的空間或其他奇怪的字符

+1

@prokoba - IttayD的答案肯定會工作,但它是一個更好的選擇*重命名*你的包,如果可以的話。其他建議的名稱:`import`,`def`和`class`。 \ X6A \ X6B! – Malvolio 2011-01-08 00:45:06