如何根据字符串中的内容创建对象
展开全部
如何根据字符串动态创建类对象
就是如何根据类的名字和值,动态返回该类的实例对象。比如,我们给一个函数传入字符串类名”Java.lang.String”和值“wuguowei”,则该函数则返回一个值为“wuguowei”的字符串对象。当然,我们也可以返回Integer对象、Long对象等,该函数可以实现动态的创建对象。
一、 枚举法
由于同事的需求只涉及到基本类型的创建,由于基本对象的个数是有限的(也就那么几个),所以我们这里可以用枚举的方式动态的创建想要的对象,虽然有些繁琐,但是还是可以实现我们的需求的。
/**
* 根据传入的类名和值,动态构造该类的实例
*
* @param _sClassName
* 要构造的类名 如:java.lang.String
* @param _sRealValue
* 要创建的对象的值,比如“wuguowei”
* @return 返回String对象,即值为“wuguowei”的字符串
* @throws Exception
*/
private Object getAttributeObject(String _sClassName, String _sRealValue)
throws Exception {
//1.加载类对象
Class attrObjClass = Class.forName(_sClassName);
//2.如果是Long类
if (attrObjClass.isInstance(new Long(0))) {
return new Long(_sRealValue);
}
//3.如果是Integer类
if (attrObjClass.isInstance(new Integer(0))) {
return new Integer(_sRealValue);
}
//4.其他类型……
//5.返回当前类的实例对象
return attrObjClass;
}
就是如何根据类的名字和值,动态返回该类的实例对象。比如,我们给一个函数传入字符串类名”Java.lang.String”和值“wuguowei”,则该函数则返回一个值为“wuguowei”的字符串对象。当然,我们也可以返回Integer对象、Long对象等,该函数可以实现动态的创建对象。
一、 枚举法
由于同事的需求只涉及到基本类型的创建,由于基本对象的个数是有限的(也就那么几个),所以我们这里可以用枚举的方式动态的创建想要的对象,虽然有些繁琐,但是还是可以实现我们的需求的。
/**
* 根据传入的类名和值,动态构造该类的实例
*
* @param _sClassName
* 要构造的类名 如:java.lang.String
* @param _sRealValue
* 要创建的对象的值,比如“wuguowei”
* @return 返回String对象,即值为“wuguowei”的字符串
* @throws Exception
*/
private Object getAttributeObject(String _sClassName, String _sRealValue)
throws Exception {
//1.加载类对象
Class attrObjClass = Class.forName(_sClassName);
//2.如果是Long类
if (attrObjClass.isInstance(new Long(0))) {
return new Long(_sRealValue);
}
//3.如果是Integer类
if (attrObjClass.isInstance(new Integer(0))) {
return new Integer(_sRealValue);
}
//4.其他类型……
//5.返回当前类的实例对象
return attrObjClass;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询