Поставщик или не поставщик

Я новичок в Java 8, и у меня есть этот вопрос

private Supplier<MissingAttribute> getExceptionSupplier(final String message) {
return () -> new MissingAttribute(message);        
    }

Член моей команды сказал получение объекта сообщения делает его больше не поставщиком, а функцией, но другой член команды сказал это все еще поставщик (функция получения). Сообщение в функции предопределено

Я в замешательстве, что правильно.

public class MissingAttribute extends Exception {
public MissingAttribute(String message, Exception cause) {
super(message + " : " + cause.getMessage(), cause);
}
public MissingAttribute(String message) { 
super(message); 
} 
.
.
. 

Я провел исследование в Интернете, но я все еще не уверен в ответе. Любые идеи по этому поводу приветствуются!

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
0
26
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ваша функция getExceptionSupplier возвращает поставщика, принимающего строку в качестве аргумента. Поставщик здесь не принимает никаких объектов в качестве входных данных. Вы работаете здесь, используя String вместо этого. Вы путаете с обычной функцией и функциональным интерфейсом Function<T,U>, который принимает тип T в качестве ввода и создает тип U в качестве вывода.

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

Технически ваш метод возвращает поставщика, т. е. объект, который не получает параметров и что-то возвращает.

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

Тем не менее, это все еще поставщик, потому что после его создания вы всегда будете вести себя одинаково при каждом вызове. Обратите внимание, что поставщику совершенно нормально принимать во внимание внешнюю константу.

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

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

Похожие вопросы