Jof*_*rey 7 java intellij-idea
是否有IntelliJ重构允许自动将枚举转换为类,从而将其枚举值转换为static final字段?
我似乎无法找到任何关于它的东西,我只找到关于提取常量但不是我正在寻找的东西.
例如,我想像这样一个枚举:
public enum Planet {
MERCURY (3.303e+23, 2.4397e6),
VENUS (4.869e+24, 6.0518e6),
EARTH (5.976e+24, 6.37814e6),
MARS (6.421e+23, 3.3972e6),
JUPITER (1.9e+27, 7.1492e7),
SATURN (5.688e+26, 6.0268e7),
URANUS (8.686e+25, 2.5559e7),
NEPTUNE (1.024e+26, 2.4746e7);
private final double mass; // in kilograms
private final double radius; // in meters
Planet(double mass, double radius) {
this.mass = mass;
this.radius = radius;
}
// getters here
}
Run Code Online (Sandbox Code Playgroud)
进入这样一个类:
public class Planet {
public static final Planet MERCURY = new Planet(3.303e+23, 2.4397e6);
public static final Planet VENUS = new Planet(4.869e+24, 6.0518e6);
public static final Planet EARTH = new Planet(5.976e+24, 6.37814e6);
public static final Planet MARS = new Planet(6.421e+23, 3.3972e6);
public static final Planet JUPITER = new Planet(1.9e+27, 7.1492e7);
public static final Planet SATURN = new Planet(5.688e+26, 6.0268e7);
public static final Planet URANUS = new Planet(8.686e+25, 2.5559e7);
public static final Planet NEPTUNE = new Planet(1.024e+26, 2.4746e7);
private final double mass; // in kilograms
private final double radius; // in meters
Planet(double mass, double radius) {
this.mass = mass;
this.radius = radius;
}
// getters here
}
Run Code Online (Sandbox Code Playgroud)
enum关键字更改为class,不需要这么复杂的重构)注意:当然有人会进行更改的原因是偏离主题,请避免在此主题中讨论它.
我找不到它的链接。但是有人/一直在谈论 Java 9 或 10 的枚举类不是从该类继承的Enum(其中所有“枚举”都是“只是自动隐藏地扩展 Enum 的类”(不是引用,而是一种简单的思考方式。 ))。从而允许extends正常工作。我认为 Java 8 甚至对此进行了讨论,但由于寻找更坚如磐石的实现而被搁置了。的 lambda 等
因此,如果将来您可以扩展枚举,我不会感到惊讶。
编辑:
(以为这是在这里,但没有注意我上次的编辑。)
我已经完成了这件事,只是使用了 Notepad++、Kate、Eclipse(无论我当时使用什么编辑器)中的“替换”功能,或者使用了 gnu 的 awk 命令来进行字符串操作。(这样的操作我已经做过很多次了,手段多种多样)一旦你学会了一些基本的正则表达式,像这样操作字符串文件就相当容易了。
例如,您可以替换(如果在 IDE/编辑器中,则在顶行的“仅选择”内)
1)<tab or 3/4 spaces>与public static final Planet
2)(与= new Planet(
3)将单词enum改为class
你就完成了。
| 归档时间: |
|
| 查看次数: |
1916 次 |
| 最近记录: |