我正在尝试编写一个可以采用任何无标记最终特征并返回@RestController
public class OwnerController {
@GetMapping(value = "owner/{ownerId}/animal")
public List<Animal> getAnimalsForOwner(@PathVariable("ownerId") Long id) {
}
}
的函数。
[ {"name": "First"}, {"name": "Second"} ]
我不明白为什么以上代码无法编译。
以下作品。
F[String]
但是我该如何摆脱这一特征?
答案 0 :(得分:4)
尝试
def apply[Api[_[_]], F[_]](implementation: Api[F]): F[String] = ???
在编写apply[Api[F[_]]](..)
时,您不会声明Api
和F
,而只会声明Api
。 F
无关紧要,您可以写apply[Api[F[_]]](..)
或apply[Api[G[_]]](..)
或只写apply[Api[_[_]]](..)
,无论如何都不能在室外使用F
。
Api[F[_]]
是类型参数声明中的正确语法,在类型位置的类型应用程序中,您应该编写Api[F]
。