gpt4 book ai didi

android - 是否可以将变量传递给枚举?

转载 作者:行者123 更新时间:2023-11-30 05:12:56 25 4
gpt4 key购买 nike

我有一个使用“ValidationRequirements”数据类验证字符串的类,如果无效则返回 Enum 错误消息。根据传递的要求类型,枚举应调整字符串以匹配它。

验证要求:

data class ValidationRequirements(
//--------CONFIG_REQUIREMENTS--------
val PREFIX_STRING: String,
val REQUIRED_LENGTH: Int,
val MAXIMUM_LENGTH: Int,
val REQUIRE_SPECIAL_CHARACTERS: Boolean,
val REQUIRE_DIGITS: Boolean,
val REQUIRE_LOWER_CASE: Boolean,
val REQUIRE_UPPER_CASE: Boolean,
val REQUIRE_SPACE_SEPARATION: Boolean
)

枚举:

enum class StringStrengthReport(private val errorMessage: String) {
INVALID_EMAIL_FORMAT("Invalid email format\n"),
TO_SHORT(" requires at least 6 characters\n"),
LOWER_CASE_REQUIRED(" requires at least one lower case character\n"),
UPPER_CASE_REQUIRED(" requires at least one upper case character\n"),
DIGIT_REQUIRED(" requires at least one numeric character\n"),
SPECIAL_CHARACTER_REQUIRED(" requires at least one special character (i.e !&?#%)\n"),
MAX_LENGTH_EXCEEDED(" max length is 32 characters\n"),
NULL_STRING(TO_SHORT.errorMessage),
VALID(" is valid!\n");
}

是否可以通过更改不同类型字符串的最小/最大长度的要求?

最佳答案

改用密封类:

sealed class StringStrengthReport(private val message: String) {
override fun toString() = message
}
class InvalidEmailFormat(): StringStrengthReport("Invalid email format")
class TooShort(val minLength: Int): StringStrengthReport("Requires at least $minLength characters")

结果:

println(InvalidEmailFormat()) // Invalid email format
println(TooShort(7)) // Requires at least 7 characters

关于android - 是否可以将变量传递给枚举?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53434435/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com