Grails string转int类型

来源:互联网 发布:郑州网络电视台 编辑:程序博客网 时间:2024/05/16 02:55

在JAVA中要把string转换成int,即用:Integer.parseInt(str),即可,但是在Grails中发现没有找到Integer的这个方法,报以下错误

groovy.lang.MissingMethodException: No signature of method: static java.lang.Integer.parseInt() is applicable for argument types: (java.lang.Integer) values: [50]

其实在Grails中定义一个变量都是用def str,也就是他会自动帮你转换,但是用到日历的时候,他就不能自动转换了,看以下代码,其中month 

def month = "2"Calendar cad = Calendar.getInstance();cad.add(Calendar.MONTH, Integer.parseInt(month));println new java.text.SimpleDateFormat(format).format(cad.getTime())

发现会报上面的异常,其实Grials中有toInteger()这个方法,他就像是toString()一样常见,将以上代码修改为:

cad.add(Calendar.MONTH, month.toInteger());

好,自此就没问题了。


但是在尝试的时候偶然发现了(int)month,有这种写法吗?答案是肯定的,但是这样转换后的值却是不完全正确,你会发现,转换后的值会比本身的值要多48,查找原因不难发现,ASC码48就是'0',也就是说'0'的值是48


所以,在Grails中真的需要转换int的时候,直接使用toInteger()方法即可。





原创粉丝点击