首页 > 解决方案 > IntelliJ 实现所有枚举值的方法

问题描述

鉴于我有一个“空”界面:

public interface Color {
}

还有一个实现上述接口的枚举类:

public enum Fruits implements Color  {

    APPLE,
    APRICOT,
    AVOCADO,
    BANANA,
    BLACKBERRY,
    BLUEBERRY,
    CHERRY,
    COCONUT,
    CRANBERRY,
    DATE,
    DURIAN,
    ELDERBERRY,
    FIG,
    JACKFRUIT,
    KIWI,
    LEMON,
    LIME,
    LYCHEE,
    MANGO,
    MELLON,
    ORANGE,
    PAPAYA,
    PASSION_FRUIT,
    PEAR,
    PLUM,
    PINEAPPLE,
    POMELO    
}

经过一段时间的编码,我回到那个界面并添加了一个方法,例如:

public interface Color {
    Color getColor();
}

IntelliJ Idea 肯定会告诉我每个枚举值都应该实现新添加的方法。我现在可以做的是跳转到每个枚举值(使用 F2 作为跳转到每个值的快捷方式),然后使用 ALT + ENTER 来创建它的默认实现。

APPLE {
    @Override
    public Color getColor() {
        return null;
    }

},
APRICOT {
    @Override
    public Color getColor() {
        return null;
    }
},
AVOCADO {
    @Override
    public Color getColor() {
        return null;
    }
},
...

一旦我意识到实现这个接口的不仅仅是这个枚举,这很快就会失控。


澄清

我正在 IntelliJ Idea 中搜索键盘快捷,这是一个 IDE,它提供了生成代码以一次创建每个枚举值的空方法树桩的功能。

IntelliJ Idea确实为每个枚举值分别提供了这样的功能,这让我想到了一个问题:可以一次为所有值完成吗?

标签: javaintellij-idea

解决方案


当然......只需在界面上创建一个默认方法:

default String getSomething(Any any) {
    return null;
}

推荐阅读