Konvertieren aller Werte von zwei Enumerationen in einen SatzJava

Java-Forum
Guest
 Konvertieren aller Werte von zwei Enumerationen in einen Satz

Post by Guest »

Ich habe zwei Enumerationen, die dieselbe Schnittstelle wie folgt implementieren:

Code: Select all

public interface System {
public String getConfigKey();
}
Zwei Enumerationen namens SystemA und SystemB implementieren diese Schnittstelle.

Code: Select all

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;
}
}
Ich wollte die getConfig-Funktion allgemein wie folgt anwenden: -

Code: Select all

Set configKeys = Stream.of(SystemA.values(),
SystemB.values()).forEach(config -> config.getConfigKey()).collect(toSet());
Aber es wird ein Kompilierungszeitfehler ausgegeben, da der gebildete Stream vom Typ Config [] ist.
Also habe ich es mit der folgenden Änderung versucht: -

Code: Select all

Set configKeys = Stream.of(SystemA.values(),
SystemB.values()).forEach(config -> config.getConfigKey()).collect(toSet());
Aber auch dies ist fehlgeschlagen, da ich auch den forEach-Teil ändern muss.
Kann mir bitte jemand helfen, wie kann ich Änderungen vornehmen? der forEach-Teil? Oder wie kann ich map()/ verwenden?

Code: Select all

flatmap()
Funktion, damit die obige Codezeile funktionieren kann ?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post