gpt4 book ai didi

java - 哪个 Java 库允许我从属性文件初始化对象的属性?

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:43:32 25 4
gpt4 key购买 nike

是否有 Java 库可以让您将属性文件直接“反序列化”为对象实例?

示例:假设您有一个名为 init.properties 的文件:

username=fisk
password=frosk

和一个具有某些属性的 Java 类:

class Connection {

private String username;
private String password;

public void setUsername(String username) {
this.username = username;
}

public void setPassword(String password) {
this.password = password;
}
}

我想这样做:

Connection c = MagicConfigurator.configure("init.properties", new Connection())

并让 MagicConfigurator 将属性文件中的所有值应用到连接实例。

有这样的图书馆吗?

最佳答案

使用 commons-beanutils 非常简单.该库甚至负责类型转换。此外,您甚至可以设置嵌套对象和数组的属性。

public static void setProperties(Object bean, Properties properties) throws IllegalAccessException, InvocationTargetException, NoSuchMethodException {
for (Map.Entry<Object, Object> e : properties.entrySet()) {
if (e.getKey() instanceof String) {
BeanUtils.setProperty(bean, (String) e.getKey(), e.getValue());
}
}
}

例如,您可以使用像这样的属性文件:

username=john
keys[0]=47
keys[1]=11
person.name=John
person.age=42

key 和年龄会即时转换为数字。 keys 数组必须提前创建,Person 也是如此。

关于java - 哪个 Java 库允许我从属性文件初始化对象的属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2880284/

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