我有一个Nat的列表,我想把它映射过来
object NatToString extends Poly1 {
implicit def caseNat = at[Nat](_.toString)
}
val list = _5 :: _3 :: HNil
list.map(NatToString)
此代码不会编译并引发:
找不到参数映射器的隐式值:
未成形。ops。hlist。映射器[Main.Nat\u to\u String.type,shapeless:[shapess.Nat.u 5,shapess:[shapess.Nat.u 3,shapess.HNil]]
但是如果我用Int(或String,或List,等等)代替Nat做同样的事情,它就可以完美地工作。
如何绘制Nat的HList?
问题是Poly1。Case
在其类型参数中不是协变的。考虑以下内容:
trait Foo
trait Bar extends Foo
val foo = new Foo {}
var bar = new Bar {}
object fooIdentity extends Poly1 {
implicit def caseFoo = at[Foo](identity)
}
现在,fooIdentity(foo)将编译,但fooIdentity(bar)不会编译。
在您的情况下,HList的成员静态类型为5和3。这些是Nat的子类型,但NatToString并不重要,因为它唯一的情况是寻找静态类型为Nat的东西。
诀窍就是在案例中添加一个类型参数:
object NatToString extends Poly1 {
implicit def caseNat[N <: Nat] = at[N](_.toString)
}
你会发现,通常直接使用Nat并不是你想要的,你几乎总是想要一个特定的子类型。
前端将这个json发送到我的API 控制器:
我有一个实体,看起来像这样: 输入数据是一个
我从数组列表中检索数据。已有数组列表具有与哈希映射类型(key、values)相同值;在从数组列表中检索这些数据并映射到哈希映射变量之后。我必须用一个叫做tax的变量来分组。 1)在哈希映射中添加Add 之后,将这些哈希映射值添加到名为final_cart_list_1的数组列表初始化类型的Arraylist中 在此之后,我将所有产品的产品特别税值 税务的日志cat值如下所示 之后,我采取产品的具
我正在尝试使用@ManyToOne和@OneToMany映射实体表。映射列位于名为“internal_plan_id”的子表中。根据要求,我不能更改名称。下面是两个实体表:父表 儿童桌: 我得到错误为:错误:关系“financial_plan_subplan”的列“internal_plan_id_internal_plan_id”不存在。 financial_subplan中用于映射的现有列名是
问题内容: 我一直在研究一个非常简单的JPA示例,并试图将其调整为现有数据库。但是我无法克服这个错误。(下面。)这只是我没看到的一些简单的事情。 在下面的DocumentManager类中(一个简单的servlet,因为这是我的目标),它做了两件事: 插入一行 返回所有行 插入效果很好-一切都很好。问题出在检索上。我尝试了各种参数值,但没有走运,并且尝试了各种更复杂的类注释(如列类型),但都没有成