当前位置: 首页 > 面试题库 >

用数据库中的值填充一个枚举

养翔
2023-03-14
问题内容

我有一个表映射String-> Integer。

我想用数据库中的值填充该枚举,而不是静态地创建一个枚举。这可能吗 ?

因此,与其静态地解决这个问题,不如:

public enum Size { SMALL(0), MEDIUM(1), LARGE(2), SUPERSIZE(3) };

我想动态创建这个枚举,因为数字{0,1,2,3}基本上是随机的(因为它们是由数据库的AUTOINCREMENT列自动生成的)。


问题答案:

否。枚举始终固定在编译时。您执行此操作的唯一方法是动态生成相关的字节码。

话虽如此,您可能应该算出您真正感兴趣的枚举的哪些方面。大概您不想对switch它们使用语句,因为那将意味着静态代码,并且您不静态知道值。
..同样,代码中的任何其他引用。

如果您真的只想要一个从String到的映射Integer,则可以只使用Map<String, Integer>在执行时填充的a
,这样就完成了。如果您需要这些EnumSet功能,则以相同的效率重现这些功能会有些棘手,但经过一些努力可能是可行的。

因此,在进一步考虑实现之前,建议您弄清实际需求。

(编辑:我一直假设此枚举是完全动态的,即您不知道名称,甚至不知道有多少值。如果名称集是固定的, 则只 需要从html" target="_blank">数据库中获取ID ,那是完全不同的问题-
请参阅Andreas的回答。)



 类似资料:
  • 简介 Laravel 可以用 seed 类轻松地为数据库填充测试数据。所有的 seed 类都存放在 database/seeds 目录下。你可以任意为 seed 类命名,但是更应该遵守类似 UsersTableSeeder 的命名规范。Laravel 默认定义的一个 DatabaseSeeder 类。可以在这个类中使用 call 方法来运行其它的 seed 类从而控制数据填充的顺序。 编写 See

  • 我正在为一个游戏开发Javafx应用程序。我有一些数据存储在枚举中,但似乎不知道如何轻松地将数据添加到JavaFX TableView,有人能帮我一下吗。我将使用fxml为TableView设置样式。 我希望每一个枚举vallue都在一个单独的行中,在我希望的列中: 图标为图像。 按整数排序。 级别为整数。 经验值为整数。 枚举:

  • 我知道这个问题已经问了100次了,但我还是没办法让它奏效。我希望TableView中充满存储在数据库中的内容。 我用一个空的TableView得到了我的FXML(这里的第一个问题:我应该已经设置列了吗?) 这就是我从数据库中获取数据并进入TableView的方法。我把som系统打印出来,检查它是否给了我正确的东西。问题是我在“tableview.getColums().addAll.col”中得到

  • 问题内容: 我正在尝试使用我的Derby数据库数据填充Netbeans GUI-builder jTable。 我在Account.java类中使用以下代码: 理想情况下,我希望能够返回其中包含参数数据和列的tableModel,因为我知道在GUI中执行此方法是一种不好的做法。在线上的所有教程都没有显示如何将数据发送到另一个类,它们只是在GUI类中执行数据库代码。 我有一个错误,它看不到数据和列,

  • 我在Account.java类中使用以下代码: 理想情况下,我希望能够返回包含参数数据和列的tableModel,因为我知道在我的GUI中使用这种方法是不好的做法。所有在线教程都没有显示如何将数据发送到另一个类,它们只是在GUI类中执行数据库代码。 我有一个错误,它无法看到数据和列,因为它们是在我的方法的一个不可访问的部分中声明和使用的。在我完成这些之后,我需要找到一种方法来将它传递给我的GUI类

  • 我有两个Dataframes一个与日期集(df1)和另一个与emp_ids集(df2)。我试图创建一个新的Dataframe,这样df2中的每个emp_id都被标记为df1中的每个日期。 下面给出了我的数据帧的外观 df1 df2 预期产出: 我将日期列转换为字符串,并尝试执行以下操作,但返回的数据框为空 我尝试做