Я наконец изменил Java-версию своего проекта Android на 8. Теперь я хочу использовать структурный поиск, чтобы найти все существующие функциональные интерфейсы и заменить их лямбда-выражениями.

Я дошел до того момента, когда смог найти анонимные классы:

new $AnonymousClass$() {
    @Override
    public void $MethodName$() {
        $Expr$;
    }
}

Но проблема в том, что он также перечислит те анонимные классы, которые не являются функциональными интерфейсами и поэтому не могут быть преобразованы в лямбды.

Как мне уточнить свой запрос, чтобы найти только функциональные интерфейсы?

0
Yashasvi 14 Май 2018 в 21:36

1 ответ

Лучший ответ

Вы пробовали использовать встроенные инспекции
Java | Java language level migration aids | Java 8 | Anonymous type can be replaced with lambda и Java | Java language level migration aids | Java 8 | Anonymous type has shorter lambda alternative? У них также есть быстрые исправления, которые сделают замену за вас.

1
Bas Leijdekkers 16 Май 2018 в 09:07