1

如何扩展 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")) 
    } 
} 

我应该如何实现我的解析器组合器方法?

4

0 回答 0