Преобразование всех значений двух перечислений в один наборJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Преобразование всех значений двух перечислений в один набор

Сообщение Anonymous »

У меня есть 2 перечисления, которые реализуют один и тот же интерфейс, как показано ниже:

Код: Выделить всё

public interface System {
public String getConfigKey();
}
Этот интерфейс реализуется двумя перечислениями с именами SystemA и SystemB.

Код: Выделить всё

public enum SystemA implements System {
ABC_CONFIG("ABC");

private SystemA(String configKey) {
this.configKey = configKey;
}

private String configKey;

public String getConfigKey() {
return configKey;
}
}

public enum SystemB implements System {
DEF_CONFIG("DEF");

private SystemB(String configKey) {
this.configKey = configKey;
}

private String configKey;

public String getConfigKey() {
return configKey;
}
}
Я хотел применить функцию getConfig обычно следующим образом: -

Код: Выделить всё

Set configKeys = Stream.of(SystemA.values(),
SystemB.values()).forEach(config -> config.getConfigKey()).collect(toSet());
Но он выдает ошибку времени компиляции, поскольку сформированный поток имеет тип: Config [] .
Поэтому я попробовал следующую модификацию: -

Код: Выделить всё

Set configKeys = Stream.of(SystemA.values(),
SystemB.values()).forEach(config -> config.getConfigKey()).collect(toSet());
Но это также не удалось, так как мне также нужно изменить часть forEach.
Может кто-нибудь помочь, как я могу изменить часть forEach? Или как я могу использовать карту()/

Код: Выделить всё

flatmap()
функция, чтобы приведенная выше строка кода могла работать?

Подробнее здесь: https://stackoverflow.com/questions/661 ... to-one-set
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»