如何扩展 Anorm 的解析器组合器并在我的应用程序中使用这些扩展?我想创建类似于 SqlParser.get、SqlParser.int、SqlParser.str 等的方法,并期望扩展 SqlParser 特征。但是当我扩展 SqlParser 时,当我尝试使用现有的解析器组合器方法时会出现编译错误:
trait MyService extends SqlParser {
def shoesize(id: String): Int = {
SQL("select shoesize from person where id = {id}")
.on("id" -> id).as (int ("shoesize"))
}
}
结果是:
类型不匹配; 发现:MyService.this.RowParser[Int] required: play.db.anorm.SqlParser.Parser[Int] 涉及默认参数的应用程序中发生错误。
但这编译:
trait MyService {
import play.db.anorm.SqlParser._
def shoesize(id: String): Int = {
SQL("select shoesize from person where id = {id}").on("id" -> id)
.as (int ("shoesize"))
}
}
我应该如何实现我的解析器组合器方法?