Получить оба объекта одного объекта c - PullRequest
0 голосов
/ 19 января 2020

У меня есть метод с вводом

Function<Line, Color> color

Как я могу получить доступ к строке объекта и цвету объекта. Потому что мне нужны некоторые атрибуты Line, а также Color. Цвет это объект, который включает в себя 2 объекта! Я прав?

1 Ответ

0 голосов
/ 20 января 2020

То, что вы имеете в качестве ввода, - это функциональный интерфейс. Функциональные интерфейсы - это интерфейсы с одним абстрактным методом. Интерфейс Function принимает значение и возвращает другое.

В вашем примере, функция параметризована для получения ввода типа Line и возвращает выход типа Color.

Чтобы ответить на ваш вопрос, нет, цвет не является объектом, который содержит два объекта. Ваша функция называется color и в основном представляет собой код, который принимает аргумент и выдает результат.

Пример того, как это будет работать (замена Line для Integer и Color для String):

Function<Integer, String> changeIntegerToString = i -> i + "";

System.out.println(changeIntegerToString.apply(1));

Как я понимаю, вы хотите два типа ввода. Вы можете использовать интерфейс BiFunction, который будет выглядеть следующим образом:

BiFunction<Integer, String, String> combineIntegerAndStringToNewString = (i, s) -> "combination: " + i + s;

System.out.println(combineIntegerAndStringToNewString.apply(2, " test"));

Таким образом, вы можете использовать как Line и Color в качестве входных данных, так и делать то, что вам нужно, с их атрибутами для возврата результата.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...