问这个问题是为了澄清我对类型类和更高种类的类型的理解,我不是在寻找Java中的解决方法。在Haskell中,我可以写类似的东西classNegatabletwherenegate::t->tnormalize::(Negatablet)=>t->tnormalizex=negate(negatex)那么假设Bool有一个Negatable的实例,v::Boolv=normalizeTrue一切正常。在Java中,似乎不可能声明一个正确的Negatable接口(interface)。我们可以这样写:interfaceNegatable{Negatablenegate();}Negatab