Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala:尝试使用泛型类型泛化方法_Scala_Playframework_Implicit Conversion - Fatal编程技术网

Scala:尝试使用泛型类型泛化方法

Scala:尝试使用泛型类型泛化方法,scala,playframework,implicit-conversion,Scala,Playframework,Implicit Conversion,因此,我有这个方法(在play framework/scala中): 我在其范围内还包含以下内容: implicit val fooFormat = Json.format[Foo] implicit val barFormat = Json.format[Bar] No Json serializer found for type T. Try to implement an implicit Writes or Format for this type. 所以,我想我应该重构并创建一个通

因此,我有这个方法(在play framework/scala中):

我在其范围内还包含以下内容:

implicit val fooFormat = Json.format[Foo]
implicit val barFormat = Json.format[Bar]
No Json serializer found for type T. Try to implement an implicit Writes or Format for this type.
所以,我想我应该重构并创建一个通用方法,如下所示:

def toHttpResponse[T](entity: T) = {
   case Ok =>
     Ok(Json.toJson(entity))

    ...
}
而且…现在我得到了这些错误,即使上述隐式在范围内:

implicit val fooFormat = Json.format[Foo]
implicit val barFormat = Json.format[Bar]
No Json serializer found for type T. Try to implement an implicit Writes or Format for this type.
我错过了什么?我知道这和这些秘密有关!感谢指挥员。谢谢

更新: 答复 (路易斯·米格尔·梅西亚·苏亚雷斯)的这一建议很有魅力:

def toHttpResponse[T : Writes]() = {
   ...
}

写入
实例必须从隐式范围解析:

def toHttpResponse[T](entity: T)(implicit w: Writes[T]) = {
   case Ok =>
     Ok(Json.toJson(entity))

    ...
}

写入
实例必须从隐式范围解析:

def toHttpResponse[T](entity: T)(implicit w: Writes[T]) = {
   case Ok =>
     Ok(Json.toJson(entity))

    ...
}

我对游戏一无所知。但通常通过添加上下文绑定或隐式参数(它们是等效的)来解决此问题。所以像
def-toHttpResponse[T:Writes](…)
这样的东西应该可以工作refactoring@cchantep你有什么消息来源吗?我以前没听说过。另外,我90%确定我有一些
2.13
代码使用上下文边界,没有任何警告。请尝试启用warning@cchantep我刚刚在一个项目上测试了创建一个简单的
Show
typeclass,在这个项目中我有
sbt-tpocleat
插件(可以启用所有警告)+Scala
2.13
。我没有看到任何警告,把它作为上下文绑定。我对游戏一无所知。但通常通过添加上下文绑定或隐式参数(它们是等效的)来解决此问题。所以像
def-toHttpResponse[T:Writes](…)
这样的东西应该可以工作refactoring@cchantep你有什么消息来源吗?我以前没听说过。另外,我90%确定我有一些
2.13
代码使用上下文边界,没有任何警告。请尝试启用warning@cchantep我刚刚在一个项目上测试了创建一个简单的
Show
typeclass,在这个项目中我有
sbt-tpocleat
插件(可以启用所有警告)+Scala
2.13
。我没有看到任何警告,把它作为上下文绑定。