BuilderInference
@Target([AnnotationTarget.VALUE_PARAMETER, AnnotationTarget.FUNCTION, AnnotationTarget.PROPERTY]) @ExperimentalTypeInference annotation class BuilderInference
Позволяет выводить типы аргументов дженериков функции из вызовов в аннотированном параметре функции.
Когда эта аннотация размещается на дженерическом параметре функции, она позволяет вывести типы аргументов этой дженерической функции из лямбда-выражения, переданного в этот параметр.
Вызовы, влияющие на вывод, являются либо членами типа получателя аннотированного параметра функции, либо расширениями для этого типа. Расширения должны быть сами аннотированы с @BuilderInference.
Пример: мы объявляем
fun <T> sequence(@BuilderInference block: suspend SequenceScope<T>.() -> Unit): Sequence<T>
и используем её так
val result = sequence { yield("result") }
Здесь тип аргумента результирующей последовательности выводится как String из аргумента функции SequenceScope.yield, которая вызывается внутри лямбда-выражения, переданного в sequence.
Примечание: эта аннотация экспериментальная, см. ExperimentalTypeInference о том, как включить её.
Конструкторы
<init>
Позволяет выводить типы аргументов дженериков функции из вызовов в аннотированном параметре функции.
BuilderInference()
© 2010–2020 JetBrains s.r.o. and Kotlin Programming Language contributors
Licensed under the Apache License, Version 2.0.
https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-builder-inference/index.html