java enum 顺序_为什么Java枚举不按顺序返回属性列表?

我正在创建一个可能更改语言的简单程序,并且将字符串数组中的myBundle.properties文件中的属性列表转换为。

这是文件myBundle.properties:

#default

test1=Hello1

test2=Hello2

test3=Hello3

test4=Hello4

test5=Hello5

test6=Hello6

这是Java代码:

import java.util.*;

class BundleTest {

BundleTest() {

String[] s = returnStringArray(Locale.ENGLISH);

for(int i=0; i

System.out.println(s[i]);

}

}

private String[] returnStringArray(Locale language) {

try {

ResourceBundle labels = ResourceBundle.getBundle("myBundle", language);

Enumeration keys = labels.getKeys();

Vector v = new Vector();

String key = null;

while (keys.hasMoreElements()) {

v.add(keys.nextElement());

}

String[] s = new String[v.size()];

for(int i=0; i

s[i] = (String)v.elementAt(i);

}

return s;

} catch (MissingResourceException mre) {

System.out.println("Risorse della lingua non trovate!");

return null;

}

}

public static void main(String[] args) {

new BundleTest();

}

}

但是,令人惊讶的是,当我执行程序时,它以随意的顺序返回了字符串。为什么枚举有这种奇怪的行为?

bash-4.1$ java BundleTest

test1

test6

test4

test5

test2

test3

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java中的枚举类型可以通过使用JDBC API将其存储到MySQL数据库中。 一种常见的方法是将枚举类型作为字符串存储在数据库中。在Java中,我们可以使用Enum的name()方法将枚举类型转换为字符串。在MySQL中,我们可以使用VARCHAR类型存储字符串。 例如,假设我们有一个名为Color的枚举类型: ``` public enum Color { RED, GREEN, BLUE } ``` 我们可以将其存储到MySQL数据库中的表中,其中包含一个名为color的列: ``` CREATE TABLE my_table ( id INT PRIMARY KEY, color VARCHAR(10) ); ``` 要将枚举类型存储到数据库中,我们可以使用PreparedStatement的setString()方法: ``` Color color = Color.RED; PreparedStatement ps = connection.prepareStatement("INSERT INTO my_table (id, color) VALUES (?, ?)"); ps.setInt(1, 1); ps.setString(2, color.name()); ps.executeUpdate(); ``` 要从数据库中检索枚举类型,我们可以使用ResultSet的getString()方法,并使用枚举类型的valueOf()方法将字符串转换回枚举类型: ``` PreparedStatement ps = connection.prepareStatement("SELECT color FROM my_table WHERE id = ?"); ps.setInt(1, 1); ResultSet rs = ps.executeQuery(); if (rs.next()) { String colorString = rs.getString("color"); Color color = Color.valueOf(colorString); } ``` 请注意,这种方法假设枚举类型具有固定的名称和顺序,因此在更改枚举类型时可能会出现问题。如果枚举类型不稳定,则应考虑使用其他方法,例如序列化或使用一个额外的ID列。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值