Как получить объект из HashMap без использования Java Reflection API? - PullRequest
3 голосов
/ 09 января 2012

Допустим, у меня есть HashMap:

val userMap = new HashMap[String, String]
userMap += "username" -> "user"
userMap += "password" -> "pass"

и объект:

username:String = ""
password:String = ""

Как лучше всего поместить значения из HashMap в объект безиспользуя Java Reflection API (с аннотациями или без)?

Это может быть похоже на этот вопрос: Scala - Lift - сопоставить пользовательский упакованный объект для привязки?

1 Ответ

5 голосов
/ 09 января 2012

Так как вы не хотите отражения, вы не можете сопоставить имена автоматически. Но сделать это вручную не сложно.

Учитывая

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, если нет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...