相关疑难解决方法(0)

Enum的values()方法的文档在哪里?

我宣布枚举为:

enum Sex {MALE,FEMALE};
Run Code Online (Sandbox Code Playgroud)

然后,迭代枚举,如下所示:

for(Sex v : Sex.values()){
    System.out.println(" values :"+ v);
}
Run Code Online (Sandbox Code Playgroud)

我检查了Java API但找不到values()方法?我很好奇这个方法来自哪里?

API链接:https: //docs.oracle.com/javase/8/docs/api/java/lang/Enum.html

java enums

168
推荐指数
3
解决办法
18万
查看次数

枚举值().长度与私有字段

我有这样的枚举:

public enum Configuration {
    XML(1),
    XSLT(10),
    TXT(100),
    HTML(2),
    DB(20);

    private final int id;
    private Configuration(int id) {
        this.id = id;
    }
    public int getId() { return id; }
}
Run Code Online (Sandbox Code Playgroud)

有时我需要检查枚举中有多少个字段.什么是最好的解决方案?我应该使用方法"values().length"吗?或许,我必须在枚举中创建常量字段,如下所示:

public enum Configuration {
    XML(1),
    XSLT(10),
    TXT(100),
    HTML(2),
    DB(20);

    private final int id;
    private Configuration(int id) {
        this.id = id;
    }
    public int getId() { return id; }

    public static final int Size = 5;
}
Run Code Online (Sandbox Code Playgroud)

什么是最快,更优雅的解决方案?

java enums

55
推荐指数
4
解决办法
6万
查看次数

Kotlin:如何使用扩展函数扩展枚举类

我正在尝试String使用以下函数扩展类型的枚举类,但我无法在调用站点使用它,如下所示:

fun <T: Enum<String>> Class<T>.join(skipFirst: Int = 0, skipLast: Int = 0): String {
    return this.enumConstants
        .drop(skipFirst)
        .dropLast(skipLast)
        .map { e -> e.name }
        .joinToString()
}

MyStringEnum.join(1, 1);
Run Code Online (Sandbox Code Playgroud)

我在这做错了什么?

enums kotlin kotlin-extension

10
推荐指数
4
解决办法
8563
查看次数

标签 统计

enums ×3

java ×2

kotlin ×1

kotlin-extension ×1