ich es für möglich, das ist nicht nur denken, enthält.
Auch wenn Sie eine Aufzählung A_1 haben, mit den Werten B und C; und eine andere Aufzählung A_2 mit den Werten C und D, die richtigen Namen sind A_1.B, A_1.C, A_2.C, A_2.D. Sie sind also völlig unzusammenhängende Typen, es gibt keine automatische Möglichkeit, das, was Sie für doppelt halten, zu verwerfen. Es sei denn, Sie stützen sich auf die String-Darstellung
Vielleicht denken Sie über das makroskopische Problem falsch (oder vielleicht müssen Sie das wirklich tun, weil jemand so definiert und Sie müssen es tun). Haben Sie eine gemeinsame Eigenschaft auf beiden Enumerations? Das würde Ihren Methoden erlauben, entweder Enumerations zu empfangen (nicht sicher, ob es funktioniert, weil Sie den Enumeration.Value ... wollen).
Andere Option wäre, einen 2in1-Typ zu haben. Entweder [FilterDimensions, Filter2Dimensions] könnte es tun, aber ich bin fast sicher, dass cats, scalaz oder shapeless haben eine anständige Art
ich ein paar Sachen über Aufzählungen auf Scala schrieb, vielleicht finden Sie es nützlich. Es umfasst einige Alternativen zu den nativen scala Aufzählungen, und vielleicht einige von ihnen haben Funktionen, die Sie brauchen:
- http://pedrorijo.com/blog/scala-enums/
- http://pedrorijo.com/blog/scala-enums-part2/