在静态方法中切换构造

时间:2018-04-02 20:12:47

标签: java interface switch-statement

我有这个问题: 我正在创建一个将DAYS转换为LESSONS的功能界面,DAYS和LESSONS都是枚举类型。 我想要实现的是一个有两种方法的接口: 一个STATIC方法将输入DAY枚举并返回一个LESSON。 另一种抽象方法是解析一组Days并返回一组Lessons。

问题在于第一种方法,我已经实现了它:

public interface Converter {
    static Lessons inputConverter(Days input) {
        switch (input) {
        case MONDAY:
            return Lessons.HISTORY;
        case SUNDAY:
            return Lessons.MATH;
        default:
            return Lessons.HISTORY;
        }
    }
}

然而,当我尝试使用它时:

Converter.inputConverter(Days.MONDAY);

我收到此错误:

  

线程“AWT-EventQueue-0”中的异常java.lang.IllegalAccessError:   更新到静态最终字段转换器。$ SWITCH_TABLE $尝试天数   来自与初始化程序不同的方法($ SWITCH_TABLE $ Days)   方法

如果我使用IF / ELSE语句没有错误,所以我认为问题在于交换机,但我无法理解我做错了什么,因为我没有尝试修改任何字段。

0 个答案:

没有答案