You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Java枚举转字符串数组的泛型方法改写为Kotlin实现

Kotlin实现方案

1. 与原Java代码功能完全对齐的写法

直接对应你提供的Java逻辑改写,调用方式和原Java一致:

fun getNames(e: Class<out Enum<*>>): Array<String> {
    return e.enumConstants.map { it.name }.toTypedArray()
}

Kotlin默认支持集合操作,不需要额外引入Stream API,比Java写法更简洁。

2. 更符合Kotlin使用习惯的泛型版本

用Kotlin特有的reified实化泛型,可以不用手动传入枚举的Class对象,调用更便捷:

inline fun <reified T : Enum<T>> getNames(): Array<String> {
    return enumValues<T>().map { it.name }.toTypedArray()
}

调用示例

假设你有如下枚举类:

enum class Color {
    RED, GREEN, BLUE
}

两种写法的调用方式分别为:

// 第一种写法调用
val names1 = getNames(Color::class.java)
// 第二种reified泛型写法调用
val names2 = getNames<Color>()

两种写法返回的都是包含["RED", "GREEN", "BLUE"]的Array<String>对象。

内容的提问来源于stack exchange,提问作者Emmanuel Conradie

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.13 11:06:00