powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Java [игнор отключен] [закрыт для гостей] / Преобразование if - return в Supplier with Function?
2 сообщений из 2, страница 1 из 1
Преобразование if - return в Supplier with Function?
    #39857781
_webdev_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Господа, подскажите пож, как можно данный код заменить Supplier и функцией. Знаю что такое кажется возможно, только не могу найти подходящий синтаксис.

Сейчас есть несколько if, хочется заменить одним Supplier и передавать функцию как параметр.

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
 
if (isIn8Days(d, firstSearch, date))
        {
            return B;
        }
        if (isBetween8And14Days(d, firstSearch, date))
        {
            return C;
        }
.......



Что-то похожее нашёл..
Код: java
1.
2.
3.
4.
5.
public static <T, R> Supplier<R> bind(Function<T,R> fn, T val) {
    return () -> fn.apply(val);
}

create(bind(Foo::new, "hello"));



Спасибо, надеюсь мой вопрос понятен.
...
Рейтинг: 0 / 0
Преобразование if - return в Supplier with Function?
    #39857963
cossack5
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что-то типа такого ?
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
  static boolean isIn8Days(int d, String f, Date date) {
        return false;
    }

    static boolean isBetween8And14Days(int d, String f, Date date) {
        return false;
    }

    static class Pair<K, V> {
        public Pair(K first, V second) {
            this.first = first;
            this.second = second;
        }

        K first;
        V second;
    }

    static <V> V test(Pair<Supplier<Boolean>, V>... suppliers) {
        for (Pair<Supplier<Boolean>, V> supplier : suppliers) {
            if (supplier.first.get()) {
                return supplier.second;
            }
        }
        return null;
    }

    public static void main(String[] args) {
        int d = 1;
        String firstSearch = "a";
        Date date = new Date();
        int B = 20, C = 20;

        test(new Pair<>(() -> isIn8Days(d, firstSearch, date), B),
                new Pair<>(() -> isBetween8And14Days(d, firstSearch, date), C)
        );
        
    }
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Преобразование if - return в Supplier with Function?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]