【发布时间】:2013-07-24 19:00:54
【问题描述】:
我需要在 Java 中编写一个类似这样的方法:
<T> getProperty(String key, T defaultValue) {
final Object value = this.config.getProperty(key);
return value == null ? defaultValue : (T) value;
}
但是,(T) 值几乎会抛出任何东西。假设我想将属性“启用”读取为布尔值,它将引发异常“无法从字符串转换为布尔值”。我正在寻找我们在 C# 中拥有的 Convert.ChangeType。
有办法吗?
【问题讨论】:
-
如果属性是一个字符串并且你想要一个布尔值怎么办?不能只转换这两个。另外,您的意思是在您的 sn-p 中使用
propertyName而不是key吗? -
是的,它是 sn-p 中的“关键”。已更正。是的,属性值始终是一个字符串(我不知道为什么它作为对象返回),但我想将它转换为我请求的类型。所以我会说 getProperty("enable", false),并将字符串值定义(“true”或“false”)作为布尔值。
-
java中没有这样的全局转换机制。你可以自己做,但你必须考虑每一种类型(每一个类)。
标签: java casting type-conversion