値を使用してenumを取得しようとしていますが、No enum constant
というエラーがスローされます。例えば、コードはKotlinにありますが、Javaで同じです。事前に感謝します。その値を使用してenum定数を取得します。
import java.util.*
enum class TaskAction constructor(val value: String) {
ARCHIVE("Archive"), UN_FLAG("Un flag"), FLAG("Flag"), REDO("Redo"),
READY("Ready"), EDIT("Edit"), DND("dnd"), DELETE("Delete"),
IN_PROGRESS("In progress"), DONE("Done");
}
fun main(args: Array<String>) {
showSomeThing(TaskAction.UN_FLAG.value)
}
fun showSomeThing(enum: String) {
println(TaskAction.valueOf(enum))
}
ログ:
例外スレッド "メイン" java.lang.IllegalArgumentExceptionが中:いいえ列挙 定数TaskAction.Unフラグ
「コードはKotlinにありますが、Javaでは同じです " - * Javaでは何が同じですか?さらに多くの人々がKotlinよりもJavaを書くことを考えれば、私はKotlinよりJavaの質問を書くことを強く勧めます。 –
'constructor'を省略することもあります。これを確認して比較してください:https://kotlinlang.org/docs/reference/enum-classes.html –
http://stackoverflow.com/a/1080914/2392960 – Januson