提问人:Nikitha 提问时间:6/30/2023 更新时间:6/30/2023 访问量:29
如何在 android kotlin 的单个函数中处理不同的输入类型和单个输出类型
How to handle different input type and single output type in a single function in android kotlin
问:
我有两个枚举类和数据类,如下所示:
名称Enum.kt
enum class NamesEnum(
val option : String
) {
AAkASH("Aakash Gupta"),
ADITI("Aditi Deshpande")
}
StateEnum.kt (英语)
enum class StateEnum(
val option : String
) {
KAR("Karnataka"),
MAH("Maharashtra")
}
学生数据.kt
data class StudentData(
var student1: String = "",
var student2: String = "",
var state1: String = "",
var state2: String = "",
){
companion object{
private var EMPTY_OBJECT: StudentData? = null
fun getInstance(): StudentData? {
if (EMPTY_OBJECT == null) EMPTY_OBJECT = StudentData()
return EMPTY_OBJECT
}
fun clearReference(){
EMPTY_OBJECT = null
}
}
}
我必须遍历每个枚举类并更新数据类中的数据:
fun updateData() : List<String>
{
val list = NamesEnum.values()
val nameList = ArrayList<String>()
for (item in list){
nameList.add(item.option)
}
return optionList
}
我想要与 updateData() 函数相同的功能,但不重复每个 Enum 类的逻辑。 我必须选择哪种设计模式来实现这一点?
答:
1赞
zaid khan
6/30/2023
#1
您可以使用字符串列表而不是枚举,并将该列表直接存储到数据类中
val namesList : List<String> = listOf("Aakash","Aditi")
val statesList : List<String> = listOf("Karnataka","Maharshtra")
data class StudentData(
val students: List<String> = emptyList(),
val states: List<String> = emptyList(),
){
companion object{
private var EMPTY_OBJECT: StudentData? = null
fun getInstance(): StudentData? {
if (EMPTY_OBJECT == null) EMPTY_OBJECT = StudentData()
return EMPTY_OBJECT
}
fun clearReference(){
EMPTY_OBJECT = null
}
}
}
fun updateData(students:List<String>,states:List<String>) : StudentData
{
return StudentData(students,sates)
}
评论
0赞
Nikitha
7/3/2023
谢谢你的建议。但是我不想将字符串保留在列表中,我希望它们作为枚举,因为我有许多这样的枚举要为单个操作进行处理
评论