質問
xxx.xxx.object パッケージを定義するJavaライブラリ(使用可能なソースコードなし)を使用しようとしています。 Scalaは、「オブジェクト」の存在について不満を述べています。パッケージ名に含まれているため、そこからインポートできず、完全修飾名でクラスを参照することもできません。
それを回避する方法はありますか?
解決
`(1の横にある引用符)でオブジェクトをラップすると動作します。
xxx.xxx.`object`
他のヒント
agilefall の答え、 Scala Language Specification は、インポートが id
で構成されていると述べています:
id ::= plainid
| ‘\`’ stringLit ‘\`’
識別子は、逆引用符で囲まれた任意の文字列によって形成されることもあります(ホストシステムは、文字列が識別子として正当なものに制限を課す場合があります)。識別子は、逆引用符自体を除くすべての文字で構成されます。
バッククォートで囲まれた文字列は、Scalaの予約語であるJava識別子にアクセスする必要がある場合の解決策です。
たとえば、yield
はScalaの予約語であるため、ステートメントThread.yield()
は違法です。ただし、ここに回避策があります:
Thread.`yield`()
所属していません StackOverflow