Ошибка шаблона Android Transformation.map

Я пытался использовать шаблон (активность с вкладками) в новом проекте (java) ... но он не запускается (без изменений кода). Версия 2.1.2 на Вин 11 выдана ошибка:

C:\Progetti\Android\Test\app\src\main\java\it\gattoneroph\test\ui\main\PageViewModel.java:12: ошибка: карта методов в классах Transformations не может применяться к заданным типам; private LiveData mText = Transformations.map(mIndex, new Function<Integer, String>() { ^ требуется: LiveData,Function1<X,Y> найдено: MutableLiveData,<анонимная функция<Integer,String>> причина: невозможно вывести тип-переменную (переменные) X, Y (несоответствие аргументов; <анонимная функция<Integer,String>> не может быть преобразована в Function1<X,Y>) где X, Y — переменные типа: X расширяет объект, объявленный в методе <X,Y>map(LiveData,Function1<X,Y>) Y расширяет объект, объявленный в методе <X,Y>map(LiveData,Function1<X,Y>)

сорт

public class PageViewModel extends ViewModel {

    private MutableLiveData<Integer> mIndex = new MutableLiveData<>();
    private LiveData<String> mText = Transformations.map(mIndex, new Function<Integer, String>() {
        @Override
        public String apply(Integer input) {
            return "Hello world from section: " + input;
        }
    });

    public void setIndex(int index) {
        mIndex.setValue(index);
    }

    public LiveData<String> getText() {
        return mText;
    }
}

почему? Я понятия не имею, почему этот шаблон кажется сломанным.

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
0
138
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Как объясняется в этой известной проблеме , шаблон генерирует код, ожидаемый более ранними версиями библиотеки Lifecycle. Однако этот код изменился в Lifecycle 2.6.0.

Как говорится в вашем сообщении об ошибке, замените new Function на new Function1, который является ожидаемым классом при использовании Lifecycle 2.6.0 или выше.

спасибо (я только начинаю делать .. я застреваю на простых проблемах)

Denis De Pauli 18.04.2023 21:55

Я преобразовал или заменил

Transformations.map(mIndex, new Function<Integer, String>() {

к лямбда.

Поскольку изменение его на новую функцию Function1 у меня не работает.

Другие вопросы по теме