假设我有一个 HashMap:
val userMap = new HashMap[String, String]
userMap += "username" -> "user"
userMap += "password" -> "pass"
和一个对象:
username:String = ""
password:String = ""
在不使用 Java 反射 API(带或不带注释)的情况下,将 HashMap 中的值放入对象的最佳方法是什么?
它可能类似于那个问题:Scala - Lift - map a custom boxed object for bind?
最佳答案
由于不需要反射,因此无法自动匹配名称。但手动操作并不难。
给定
class User(val username: String = "", val password: String = "") {}
我只是
for {
name <- userMap.get("username")
pwd <- userMap.get("password")
} yield new User(name,pwd)
这将为您提供一个 Option[User]
,如果该 map 中有 Some
用户,则为 None
。
关于scala - 如何在不使用 Java 反射 API 的情况下从 HashMap 中获取对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8781786/