1 回答

TA貢獻(xiàn)1789條經(jīng)驗(yàn) 獲得超10個(gè)贊
您可以使用擴(kuò)展函數(shù)和具體化類型參數(shù)執(zhí)行類似以下操作:
inline fun <reified T> Map<String, Any>.get(key: String) = get(key) as? T
然后您可以在任何 Map 上調(diào)用該函數(shù),如下所示:
@GetMapping("/user")
fun find(@RequestParam data: Map<String, Any>): Map<String, Any> {
? ? val id = data.get<String>("id") // string
? ? println(id)
? ? return data
}
或者非泛型擴(kuò)展函數(shù)也可以工作(這可能是更好的方法,因?yàn)閰?shù)映射始終是類型Map<String, String>
并且不會(huì)自動(dòng)將數(shù)字轉(zhuǎn)換為整數(shù)):
fun Map<String, Any>.getString(key: String) = get(key) as? String
fun Map<String, Any>.getInt(key: String) = getString(key)?.toInt()
添加回答
舉報(bào)