Какова эквивалентная Java-реализация этого шаблона обобщенного метода C # - PullRequest
0 голосов
/ 02 октября 2018

Я переписываю библиотеку, изначально написанную на C #, на Java и стараюсь изо всех сил следовать ей как можно точнее.Это, однако, поставило меня в тупик.

Это метод C #, который я хочу воссоздать в Java

public T With<TV>(Func<T, IEditable> func, TV value)
        {
            var pageElement = func(TypedThis);
            pageActions.Add(new WebDriverValuePageAction<TV>(pageElement, value));
            return TypedThis;
        }

Это универсальный метод, который используется как часть инфраструктуры объектов страницы Selenium, где T - это BasePage и метод.принимает любой элемент страницы, наследующий интерфейс IEditable.

Что меня озадачивает, так это With<TV> часть метода и способ его воссоздания в Java.Все остальное в значительной степени сделано.Я был в состоянии воссоздать T , но не могу понять, как передать в телевизор (по сути, общее значение) вместе с функцией.

1 Ответ

0 голосов
/ 02 октября 2018

Прямой эквивалент будет

    public <TV> T With(Function<T, IEditable> func, TV value)
    {
        IEditable pageElement = func.apply(TypedThis);
        pageActions.Add(new WebDriverValuePageAction<TV>(pageElement, value));
        return TypedThis;
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...