You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@flink.apache.org by "Robert Metzger (Jira)" <ji...@apache.org> on 2021/01/15 08:11:00 UTC

[jira] [Commented] (FLINK-18280) Kotlin adapters for Flink types?

    [ https://issues.apache.org/jira/browse/FLINK-18280?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17265803#comment-17265803 ] 

Robert Metzger commented on FLINK-18280:
----------------------------------------

Cool! Thanks for sharing.

I would recommend you to submit this to https://flink-packages.org/ as well, for increased visibility! 

> Kotlin adapters for Flink types?
> --------------------------------
>
>                 Key: FLINK-18280
>                 URL: https://issues.apache.org/jira/browse/FLINK-18280
>             Project: Flink
>          Issue Type: Wish
>          Components: API / DataStream
>    Affects Versions: 1.10.1
>            Reporter: Marshall Pierce
>            Priority: Minor
>
> Currently, using a Kotlin lambda for, say, a {{KeySelector}} doesn't work – it needs to be an {{object}} expression for the runtime type detection to work. At my day job we have started building up a handful of wrappers, like this one for {{KeySelector}}:
> {code}
> inline fun <T, K> keySelector(crossinline block: (T) -> K): KeySelector<T, K> {
>     return object : KeySelector<T, K> {
>         override fun getKey(value: T): K {
>             return block(value)
>         }
>     }
> }
> {code}
> Usage looks like: {code}keySelector { it.fooId }{code}
> Surely not the only way to solve that problem, but it's been working smoothly for us so far.
> Is there any interested in shipping these sorts of extensions as part of the Flink project so users don't need to write them? It could be a wholly separate artifact (or rather multiple artifacts, as there would probably be one for flink core, one for flink streaming, etc). 



--
This message was sent by Atlassian Jira
(v8.3.4#803005)