scala - 获取 Scala 枚举实例

标签 scala enums singleton

我设计了以下 Scala 枚举 after reading this answer :

object RunMode extends Enumeration {
    val CLIENT_MODE = Value("CLIENT_MODE")
    val SERVER_MODE = Value("SERVER_MODE")
}

我现在尝试将它的实例作为参数传递到另一个类的构造函数中:

package com.me.myapp.shared.config

import com.me.myapp.shared.utils.RunMode

class MyAppConfig(runMode : RunMode) {

}

这给了我一个编译器错误:

Cannot resolve symbol RunMode

顺便说一句:com.me.myapp.shared.utils.RunModeRunMode的正确包路径,所以这是不是这里的问题!

假设这可能是因为RunMode对象只有(曾经)一个实例,并且也许这会阻止它作为arg传入.

无论如何,我并不关心解决方案是什么。但我需要一个名为 RunMode 的“枚举”,并且我需要能够将它的实例传递给其他类的构造函数。有什么想法吗?

最佳答案

你已经差不多了,Enumeration 值的正确类型是 Enumeration.Value,所以这里你需要使用:

class MyAppConfig(runMode : RunMode.Value) {

}

关于scala - 获取 Scala 枚举实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42747543/

相关文章:

scala - 使用 Slick 创建单列表

string - 在scala中使用本地化对字符串列表进行排序

java - 返回扩展 Enum 并实现和 Interface-Java 的泛型类

c++ 枚举范围无法使用 -std=c++98 编译,但可以使用 -std=c++11

java - 单例对象工厂 : is this code thread-safe?

Swift - 如何在菜单栏应用程序中跨窗口共享类(作为单例)?

scala - 为什么在加载 Scala 构建文件时会出现编译错误?

scala - 过滤 Scala 的并行集合,并在找到所需数量的结果时提前中止

c# - 即使指定了基础类型,也无法从枚举隐式转换值

Kotlin 单例 : Object vs a Class with private constructor