如何在Java中从字符串自动转换属性值?
假设我有一个bean,它有许多类型的属性,比如int、String、Date等等。。。当然是所有的原始类型。我想用这些值的字符串表示来填充它,而不需要编写所有的解析代码。。。怎么做?您可以使用如何在Java中从字符串自动转换属性值?,java,properties,Java,Properties,假设我有一个bean,它有许多类型的属性,比如int、String、Date等等。。。当然是所有的原始类型。我想用这些值的字符串表示来填充它,而不需要编写所有的解析代码。。。怎么做?您可以使用String.valueOf()。您可以传递任何需要转换的对象,它将完成其余的工作。请注意,如果传入任何对象,它们将需要实现一个合适的toString方法。像Spring这样的Bean框架可以为您实现这一点。但是,如果您想自己编写,则需要使用反射来查找所需的类型,然后使用正确的转换代码 如果您有这样一个类:
String.valueOf()
。您可以传递任何需要转换的对象,它将完成其余的工作。请注意,如果传入任何对象,它们将需要实现一个合适的toString方法。像Spring这样的Bean框架可以为您实现这一点。但是,如果您想自己编写,则需要使用反射来查找所需的类型,然后使用正确的转换代码
如果您有这样一个类:
public class MyBean {
private int count;
public void setCount(int count) {
this.count = count;
}
}
<beans>
<bean id="myBean1" class="MyBean">
<property name="count" value="3"/>
</bean>
</beans>
以及类似以下的应用程序上下文:
public class MyBean {
private int count;
public void setCount(int count) {
this.count = count;
}
}
<beans>
<bean id="myBean1" class="MyBean">
<property name="count" value="3"/>
</bean>
</beans>
那么这一切对你来说都应该很好。查看以获取更多信息,示例比文档要好。如果您试图使用属性文件(即字符串)中的值实例化bean,那么
valueOf(String s)
方法就是您的朋友。所有基元类型包装类(Short
,Integer
,Long
,Float
,Double
,Boolean
,Character
,Byte
和String
)都提供了静态工厂方法,称为valueOf
,使用String
参数
请注意,Date
不是一个原始包装器,不属于此类别
如果您感兴趣,我可以发布我编写的bean factory类的代码,该类处理自定义@Property注释以从属性文件创建bean实例。根据我对您问题的理解,您有一个属性映射,例如:
name: "gotch4"
age: "21"
birthday: "7/21/2011"
您想要创建一个假想的Person对象的实例,它具有:
String getName()
int getAge()
Date getBirthday()
提供了一个很好的Java库来实现这一点。看看String和Date不是基本类型…Date\Integer\Boolean.parseString不起作用吗?什么样的bean?一个普通的JavaBean,还是一个Springbean?一个JavaBean,我不想写解析代码,我的意思是我不想用parseInt解析日期等来写代码…“我想用这些值的字符串表示来填充它,…”这是一个糟糕的主意!bean应该重新设计以接受实际对象。。。告诉我什么是相关的