【问题标题】:What type is enum values? [closed]枚举值是什么类型? [关闭]
【发布时间】:2019-01-27 09:20:59
【问题描述】:

我对 Java 很陌生,似乎无法理解我的方法返回了什么值。我认为应该是List,但似乎并非如此。该方法所做的只是从我得到的枚举类中获取所有值。代码如下:

public static List getRandomSquare() {
  // What should replace "List"?
  Square[] squareTypes = Square.values();
  return squareTypes;
}

在这种情况下应该用什么替换List

【问题讨论】:

  • 您收到的编译器错误消息是什么?它可能会告诉您预期和实际类型是什么。
  • values() 方法返回一个枚举数组,即 Square[],如果你想返回 List 它应该是 Arrays.asList(squareTypes)。

标签: java collections enums


【解决方案1】:

按照你上面贴的代码,返回类型应该是Square[],也就是Square对象的数组:

public static Square[] getRandomSquare() {
    Square[] squareTypes = Square.values();
    return squareTypes;
}

如果您想返回Square 对象的列表,那么我们使用Arrays.asList

public static List<Square> getRandomSquare() {
    Square[] squareTypes = Square.values();
    return Arrays.asList(squareTypes);
}

【讨论】:

  • 然而,如果这个方法应该选择一个随机的枚举值(就像名字所暗示的那样),返回类型可能应该是Square(并且实现也需要做一些事情)。 (当然是我的疯狂猜测)
  • @Thilo 你可能是对的。在我改变之前,我会等待 OP 用 cmets 来回答我的问题。
猜你喜欢
  • 2013-10-12
  • 2015-09-26
  • 1970-01-01
  • 2018-10-13
  • 1970-01-01
  • 1970-01-01
  • 2010-11-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多