我正在尝试将以下Spring Security代码从Java转换为Kotlin.
Java的:
Collection<? extends GrantedAuthority> authorities =
Arrays.stream(claims.get(AUTHORITIES_KEY).toString().split(","))
.map(SimpleGrantedAuthority::new)
.collect(Collectors.toList());
Run Code Online (Sandbox Code Playgroud)
科特林:
val authorities = Arrays.stream(claims[AUTHORITIES_KEY].toString().split(",".toRegex()).dropLastWhile { it.isEmpty() }.toTypedArray())
.map(SimpleGrantedAuthority())
.collect(Collectors.toList<SimpleGrantedAuthority>())
Run Code Online (Sandbox Code Playgroud)
我得到一个类型不匹配错误(Required:
Function<in String!, out (???..???)>!
).map(SimpleGrantedAuthority())
.如何::new
正确地将上述Java代码转换为Kotlin ?
使用Arrays.stream
不会使代码超级可读:
val authorities = Arrays.stream(claims.get(AUTHORITIES_KEY).toString().split(",").toTypedArray())
.map(::SimpleGrantedAuthority).collect(Collectors.toList<SimpleGrantedAuthority>())
Run Code Online (Sandbox Code Playgroud)
但是在Kotlin你可以做得更好:
val authorities = claims.get(AUTHORITIES_KEY).toString()
.split(",").filterNot { it.isEmpty() }
.map(::SimpleGrantedAuthority)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
464 次 |
最近记录: |