簡體   English   中英

返回地圖

[英]Return in a map

可以這樣做,是否可以直接在地圖內返回響應:

var authorized = false
roles.map { role => 
    val method = userRole.getClass.getDeclaredMethod(role.toString)
    authorized = method.invoke(userRole).asInstanceOf[Boolean]
}
authorized

還是唯一的方法? 我了解到最好避免使用var。

謝謝!

如果要檢查列表中是否存在滿足某些條件的元素,可以使用exists方法:

list.exists(value => condition(value))

問題更改后進行編輯

在這種情況下,您仍然可以使用exists ,但是,如果要調用所有方法,則需要先使用map (假設您的列表很急):

roles.map { role => 
    userRole.getClass.getDeclaredMethod(role.toString).invoke(userRole)
}.exists(_.asInstanceOf[Boolean])

如果您不需要調用所有方法(如果方法是純方法,則可能不需要調用所有方法),則可以使用exists

roles.exists { role =>
    userRole.getClass.getDeclaredMethod(role.toString)
            .invoke(userRole).asInstanceOf[Boolean]
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM