Сокращение Котлина для реализации функционального интерфейса с аннотациями - PullRequest
0 голосов
/ 06 декабря 2018

В Kotlin есть способ определить аннотированный класс, реализующий функциональный интерфейс, который короче следующего:

@Foo
class Bar : Runnable {
    override fun run() = ...
}

Я надеюсь найти что-то вроде следующего готового синтаксиса:

@Foo
fun Bar : Runnable () = ...

По соображениям совместимости я должен получить класс, аннотированный @Foo, реализующий Runnable, или экземпляр класса, аннотированный @Foo, реализующий Runnable.

1 Ответ

0 голосов
/ 06 декабря 2018

Я предполагаю, что самый короткий синтаксис будет таким:

@Foo object: Runnable {
    override fun run() {}
}

Если вы аннотируете лямбды , аннотация будет применяться к функции invoke, а не к реализованному классу.

...