Как добавить комментарии в квазицитате
Я пытаюсь вставить комментарии класса для квази кавычек, как это так
q"""
package somePackage {
/**
* This is a comment
*/
public class SomeClass {
}
}
"""
Но это исключение
Exception in thread "main" java.lang.IllegalArgumentException: not legal package stat: <type ?>
at scala.reflect.internal.ReificationSupport$ReificationSupportImpl.mkPackageStat(ReificationSupport.scala:156)
at scala.reflect.internal.ReificationSupport$ReificationSupportImpl.mkPackageStat(ReificationSupport.scala:11)
at database.generate.jooq.JooqGenerate.generateDaos(JooqGenerate.scala:65)
at database.generate.GenerateDao$.apply(GenerateDao.scala:25)
at Test$.main(Test.scala:7)
at Test.main(Test.scala)
1 ответ
Это работает для меня:
scala> import scala.reflect.runtime.universe._
import scala.reflect.runtime.universe._
scala> q"""
| package somePackage {
| /**
| * This is a comment
| */
| class SomeClass()
| }
| """
res0: reflect.runtime.universe.PackageDef =
package somePackage {
class SomeClass extends scala.AnyRef {
def <init>() = {
super.<init>();
()
}
}
}
scala>
scala>
Это то, что вы используете Java-класс в кавычках, что вызывает проблему?
Также проверьте, какую версию Scala вы используете
scala> util.Properties.versionString
res2: String = version 2.11.7
И учебник здесь: http://docs.scala-lang.org/overviews/quasiquotes/intro.html