gpt4 book ai didi

java - 在 Java 中使用枚举作为数组索引

转载 作者:IT老高 更新时间:2023-10-28 21:00:23 24 4
gpt4 key购买 nike

在阅读 Effective Java 时,我遇到了“使用枚举而不是 int 常量”的建议。在当前的项目中,我正在做类似于以下的事情:

int COL_NAME = 0;
int COL_SURNAME = 1;

table[COL_NAME] = "JONES"

我将如何使用枚举来实现这一目标?由于我被迫使用接口(interface),我必须使用 int 作为我的索引。上面的例子只是一个例子。我实际上使用的 API 采用 int 作为索引值。

最佳答案

将一种有用的模式与反模式一起应用通常会失败 ;-)

在您的情况下,当您想用 enum 值替换 int 常量时,将数组用于非真正类似数组的数据会出现问题。

一个干净的(er) 解决方案类似于 EnumMapenum 值作为键。

您也可以使用 table[COL_NAME.ordinal()]如果你绝对必须。

如果某些 API 强制您传递 int 值,但您可以控制实际值(即您可以传递自己的常量),那么您可以切换到使用 enum 值,并且仅在您的代码与 API 接口(interface)的位置与 enum 进行转换。 enumValue.ordinal()的逆运算是EnumClass.values()[ordinal])。

关于java - 在 Java 中使用枚举作为数组索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5417454/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com