当前位置: 首页 > 知识库问答 >
问题:

将两个枚举转换为两个一集

伯逸明
2023-03-14

我有两个枚举,它们实现了如下相同的接口:-

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;
   }
}

我想要像这样应用getConfigFunction:-

Set<String> configKeys = Stream.<System>of(SystemA.values(), 
                SystemB.values()).forEach(config -> config.getConfigKey()).collect(toSet());

但它会抛出编译时错误,因为形成的流的类型为:Config[]。所以我尝试了以下修改:-

Set<String> configKeys = Stream.<System []>of(SystemA.values(), 
                    SystemB.values()).forEach(config -> config.getConfigKey()).collect(toSet());

但这也失败了,因为我还需要修改forEach部分。有人能帮忙吗?我该如何修改forEach部分,或者我该如何使用map()/flatmap()函数,这样上面的代码行就可以工作了。

谢谢

共有1个答案

厍胤运
2023-03-14

要获取两个枚举的所有值,则需要使用:

Set<String> configKeys = Stream.of(SystemA.values(), SystemB.values())
        .flatMap(Arrays::stream)
        .map(System::getConfigKey)
        .collect(toSet());
 类似资料:
  • 我有以下型号 我试图通过名称和组名称获得一个实例。 我可以用下面的代码来做 但是我想把它变成一个查询。对如何实现这一点有什么想法吗?

  • 问题内容: 给出测试代码: 我想检查两个给定的枚举是否包含相同的值。 也许有更优雅的方式做到这一点? 问题答案: 建立一组名称: 为此(考虑将以上内容提取到方法中)。 然后:

  • 问题内容: 我的服务器JSON返回了两种不同类型的DateFormat。“ MMM dd,yyyy”和“ MMM dd,yyyy HH:mm:ss” 当我使用以下内容转换JSON时,就可以了: 但是,当我想要详细的日期格式并将其更改为该格式时,它将引发异常com.google.gson.JsonSyntaxException:2013年3月21日 gson是否可以处理Json转换的两个不同的Dat

  • 问题内容: 给定以下枚举,将Int强制转换为Java中的枚举的正确方法是什么? 问题答案: 尝试在必须为or的地方,即该枚举的有效序数。 请注意,在Java中,枚举实际上是类(因此,枚举值是对象),因此您不能将an 甚至转换为枚举。

  • 我有枚举类,我想向列表视图显示枚举数据。谁能说出如何做到这一点?

  • 我想将< code>socket.getSocket()和< code > socket status . getsocketstatus()存储在< code>HashMap中。但是< code>hMap.put(socket.getSocket()、socket status . getsocketstatus());引发< code > NullPointerException 。我该如何解