相关疑难解决方法(0)

在Scala中创建Java Enum

我的工作场所一直在尝试从Java迁移到Scala执行某些任务,并且它适用于我们正在做的事情.但是,一些预先存在的测井方法需要一个java.lang.Enum.日志记录方法在(Java)基类中定义,子类可以定义自己的枚举,记录器将跟踪多个线程/机器中的所有实例.

它在Java中的工作原理如下:

public class JavaSubClass extends JavaBaseClass {
    enum Counters {
        BAD_THING,
        GOOD_THING
    }

    public void someDistributedTask() {
        // some work here
        if(terribleThing) {
            loggingMethod(Counters.BAD_THING)
        } else {
            loggingMethod(Counters.GOOD_THING)
            // more work here
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

然后,当任务完成后,我们可以看到

BAD_THING: 230
GOOD_THING: 10345
Run Code Online (Sandbox Code Playgroud)

有没有办法在Scala中复制它,通过创建Java Enum或转换EnumerationEnum?我试过Enum直接扩展,但它似乎是密封的,因为我在控制台中得到错误:

error: constructor Enum in class Enum cannot be accessed in object $iw
Access to protected constructor Enum not permitted because
enclosing object $iw is not a subclass of …
Run Code Online (Sandbox Code Playgroud)

java enums scala

16
推荐指数
3
解决办法
1万
查看次数

标签 统计

enums ×1

java ×1

scala ×1