4
|
CodingInsomnia · 技术社区 · 14 年前 |
1
3
如果您唯一的问题是在
如果您有为复合值定义相等性的更一般的问题,那么我将着重于使复合值本机支持相等性。是的,定义实现平等所必需的全套方法是一件痛苦的事情,但它主要是锅炉板代码。正确理解这一点比锅炉盘代码看起来是否凌乱更重要。 |
2
1
实际上,对于任何结构,都应该手动编写
除了需要装箱外,默认实现速度相当慢,因为它使用反射来检查字段。至少在某些框架版本中也存在一个错误(实现在这样做时相当明智地优化为二进制比较,这样做会得到正确的结果,但不幸的是,在这种情况下判断错误,因此两个结构包含等效的
当需要一个快速的复合键时,除了作为复合键之外,它对系统没有任何意义,我建议使用
在某些情况下,也可以将匿名类用作键(当然,只能在给定方法的上下文中使用),这里是
|
3
0
要创建这样的复合类,建议使用继承自
这样,您就不必重写
您可以轻松地为每个字段提供有意义的get访问器。
这也加强了不可变性,这适用于字典键。 至于性能,内置元组相当快。我发现定制结构可以更快,但是如果您真的需要每一个额外的性能位,最好是直接将您的密钥数据编码为int或long。 |
Henry Vonfire · 如何在Slick中实现值类型? 9 年前 |