相关疑难解决方法(0)

是否可以扩展Java Enums?

这是我想要完成的,我有一个类具有一些值的枚举,我想继承它并为枚举添加更多的值.这是一个不好的例子,但是:

public class Digits
{
 public enum Digit
 {
  0, 1, 2, 3, 4, 5, 6, 7, 8, 9
 }
}

public class HexDigits extends Digits
{
 public enum Digit
 {
  A, B, C, D, E, F
 }
}
Run Code Online (Sandbox Code Playgroud)

这样HexDigits.Digit包含所有十六进制数字.那可能吗?

java enums

20
推荐指数
2
解决办法
2万
查看次数

Java Enum toString()方法

我有几个使用下划线来分隔单词的Java枚举.在我的每个枚举中,我有一个toString方法,它实现为super.toString().replace("_",""),这样我就可以在没有下划线的GUI上显示字符串值.有没有什么方法可以让我的所有枚举使用这个toString方法,而不是在所有这些方法中重复它?如果这是一个常规类,答案很简单,实现toString()然后让我所有需要该实现的类扩展该类,但枚举不能扩展任何东西,甚至不能扩展枚举.

public enum Example1 {
    HELLO_WORLD, HELLO_EARTH, HELLO_GLOBE
    @Override public String toString() {
        return super.toString().replace("_", " ");
    }
}
public enum Example2 {
    ANSWER_1, ANSWER_2, ANSWER_3
    @Override public String toString() {
        return super.toString().replace("_", " ");
    }
}
Run Code Online (Sandbox Code Playgroud)

有没有人有一个解决方案,不会在所有枚举中复制这个toString()方法?

java enums

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

多个Java 8枚举使用相同的方法

我有一系列看起来像这样的枚举,除了名称和值不同:

/* Bone Diagnosis. Value is internal code stored in database. */
public enum BoneDiagnosis {
    NORMAL(121),
    ELEVATED(207),
    OSTEOPENIA(314),
    OSTEOPOROSIS(315);

    private int value;
    BoneDiagnosis(final int value) {
        this.value = value;
    }

    /** Get localized text for the enumeration. */
    public String getText() {
        return MainProgram.localize(this.getClass().getSimpleName().toUpperCase() + ".VALUE." + this.name());
    }

    /** Convert enumeration to predetermined database value. */
    public int toDB() {
        return value;
    }

    /** Convert a value read from the database back into an enumeration. */
    public static …
Run Code Online (Sandbox Code Playgroud)

java enums java-8

1
推荐指数
1
解决办法
1234
查看次数

标签 统计

enums ×3

java ×3

java-8 ×1