java - 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确实为每个枚举值分别提供了这样的功能,这让我想到了一个问题:可以一次为所有值完成吗?
解决方案
当然......只需在界面上创建一个默认方法:
default String getSomething(Any any) {
return null;
}
推荐阅读
- excel - 如何在 Microsoft Excel VBA 中进行计算?
- arrays - 使用 Vuejs 和 Axios 合并对象
- javascript - 带有警报的jQuery表单验证器OnSuccess不起作用
- graphql - Why use Prisma in a backend environment?
- vapor - Vapor 应用程序在启动时崩溃。VaporS3Signer.Provider.S3ProviderError.config("没有 vapor-S3Signer.json 配置文件")
- firebase - 如何将 Firebase 项目实施到另一个帐户?
- c - C - Characters not displayed correctly in output
- javascript - React Javascript onclick outside div
- r - Extract specific word
- android - 奥利奥停止前台服务