动态强制类型转换的问题
在使用DynaClass,DynaBean时遇到一个类型强制转化的问题
例如:
Class classType = ***.class;//***可以是String,Double等类型
Object newObj = "123 ";
String a = (classType)newObj;//这句是错的
意思就是说属性的类型及值都是动态的,当我们获得到这个属性的值对象时,就需要根据其类型来强制转换。但是上面想当然的代码是错的。
该怎么写呢?
------解决方案--------------------classType 只是class类型,string又不是class类型,所以不对
可以用class.getName()来得到这个包的名字,然后截取最后一个.号的后面部分,然后转换
------解决方案--------------------楼上的方法不对,class.getName() 出来的只是字符串,字符串不能放在强制转换括号内当作类来用的。
还有楼主,String a = (classType)newObj; 这句话有明显示的语法错误,( )内只能写类名,而不能写变量名,再者,就算你把它换成 Double 还是会报错了,只有 Double 和 String 本身就是风马牛不相及(不存在继承、实现关系)的两个类,只有父类、子类或者是接口、实现才能做这样的转换。
------解决方案--------------------你可以显示的定义objec类,不用默认的,需要进行转换的类型继承此类,以后就可以把object强制转化成他的子类..
------解决方案--------------------Java 中好像不能实现这样的转换,就算使用
Class.forName( "Double ").newInstance(); 得到的还是一个 Object,
大概你只通过罗列所有需要用到的类,再用判断语句一个一个转换了,因为 ( ) 里只能写类的名字,而不能写其他的东西。
肯定高手帮忙吧!!!
------解决方案--------------------如果你的Object都不是Date,那你还能怎么处理 ?
如果你的Object是String,那当然需要自己手工parse一个Date出来!