如果我写的话会发生什么不好的事情:
class TaskType extends Enumeration {
type TaskType = Value
val LINEAR_REGRESSION, POISSON_REGRESSION, LOGISTIC_REGRESSION, SMOOTHED_HINGE_LOSS_LINEAR_SVM, NONE = Value
};
IDE和编译器看起来很好用。如果import TaskType._
是TaskType
而不是object
,我必须插入一些class
。
答案 0 :(得分:2)
它违背了将枚举作为一组唯一稳定标识符的目的。
要使用类的成员,我们需要一个实例。每个实例的成员都不同。实际上,在系统的某些部分实例化的LINEAR_REGRESSION
将与在其他地方实例化的LINEAR_REGRESSION
不同。
例如:
class TaskType extends Enumeration {
type TaskType = Value
val LINEAR_REGRESSION, POISSON_REGRESSION, LOGISTIC_REGRESSION, SMOOTHED_HINGE_LOSS_LINEAR_SVM, NONE = Value
}
val instance = new TaskType
val otherInstance = new TaskType
import instance._
val lr = LINEAR_REGRESSION
val lr2 = otherInstance.LINEAR_REGRESSION
lr == lr2
// false