java如何将整数数组转换为枚举数组?
我有一个整数数组,需要将其转换为枚举数组
enum my_enum {
APPLE, BANANA, ORANGE;
int getColorAsInt() { ... }
};
int[] foo = some_method_i_cannot_modify();
my_enum[] bar = ??? ( foo );
最简单的方法是什么
Here我找到了一种将单个整数转换为枚举值的方法(他们在示例中使用了Color
枚举):
public static Color convertIntToColor(int iColor) {
for (Color color : Color.values()) {
if (color.getColorAsInt() == iColor) {
return color;
}
}
return null;
}
。。。但是我希望有一种更直接的方法来进行转换(否则在我的代码中,首先使用枚举是没有意义的)
Here是一个关于将单个整数转换为枚举值的问题
# 1 楼答案
如果它是你的
enum
,你当然可以先给它映射# 2 楼答案
你别无选择。因为您有
int
个值,并且希望将它们转换为枚举值因此,对于每一个
int
,你必须找到对应的枚举值,不管怎样在声明中使用enum的顺序有一种更直接的方法
但这是一种非常容易出错的方法,它假设int值从0开始,然后递增1
# 3 楼答案
这取决于
foo
数组中的内容。如果它是枚举的ordinal
,那么像这样简单的东西就足够了印刷品
一个
streams
等价物应该是这样的:# 4 楼答案
我会制作一张地图,从那里获取一个映射值。当然,使用自己的id比ordinal好,但为了表达一个想法:
输出
# 5 楼答案
您需要使用循环或流来迭代整数的输入数组,并将每个整数映射到
Color
实例。试试这个:# 6 楼答案
这一行代码将返回对象数组,您可以访问enum 按arr[0]