作者:林志岳小行克元 | 来源:互联网 | 2023-01-27 19:59
我正在尝试将以下Spring Security代码从Java转换为Kotlin.
Java的:
Collection extends GrantedAuthority> authorities =
Arrays.stream(claims.get(AUTHORITIES_KEY).toString().split(","))
.map(SimpleGrantedAuthority::new)
.collect(Collectors.toList());
科特林:
val authorities = Arrays.stream(claims[AUTHORITIES_KEY].toString().split(",".toRegex()).dropLastWhile { it.isEmpty() }.toTypedArray())
.map(SimpleGrantedAuthority())
.collect(Collectors.toList())
我得到一个类型不匹配错误(Required:
Function!
).map(SimpleGrantedAuthority())
.如何::new
正确地将上述Java代码转换为Kotlin ?
1> miensol..:
使用Arrays.stream
不会使代码超级可读:
val authorities = Arrays.stream(claims.get(AUTHORITIES_KEY).toString().split(",").toTypedArray())
.map(::SimpleGrantedAuthority).collect(Collectors.toList())
但是在Kotlin你可以做得更好:
val authorities = claims.get(AUTHORITIES_KEY).toString()
.split(",").filterNot { it.isEmpty() }
.map(::SimpleGrantedAuthority)