假设我有一个HashMap:
val userMap = new HashMap[String, String]
userMap += "username" -> "user"
userMap += "password" -> "pass"
和一个对象:
username:String = ""
password:String = ""
在不使用Java Reflection API(带或不带注释)的情况下,将HashMap中的值放入对象的最佳方法是什么?
答案 0 :(得分:5)
由于您不想要反射,因此无法自动匹配名称。但手动完成并不难。
鉴于
class User(val username: String = "", val password: String = "") {}
我会
for {
name <- userMap.get("username")
pwd <- userMap.get("password")
} yield new User(name,pwd)
如果用户位于该地图中,则会为Option[User]
用户提供Some
,如果不是,则为None
。