【发布时间】:2018-12-15 23:18:08
【问题描述】:
我正在构建 DSL 并尝试定义一个自定义类 CustomClass,您可以在
def result = customInstance >= 100 ? 'a' : 'b'
if (customInstance == 'hello') {...}
当您的类同时定义 equals 并实现 Comparable(定义 compareTo)时,Groovy 不会调用 ==。
相反,Groovy 调用 compareToWithEqualityCheck,它有一个分支逻辑。除非您的自定义 DSL 类可以从 String 或 Number 分配,否则您的自定义 compareTo 将不会被上述示例调用。
您不能用String 扩展CustomClass。
我觉得我错过了什么。希望你能帮我弄清楚如何实现我上面展示的一个简单的案例。
【问题讨论】: