用eclipse实装java代码时遇到一个问题。
log.debug(“vo”+vo)和log.debug(”vo“+vo.tostring)没有问题,写成log.debug(vo)就挂掉了。
错误信息是:vo cannot be cast to java.lang.String.
我想问一下大家,这三种写法有什么不一样吗?为什么第三种会报错,前两种没有问题,这三种里面哪一种写法最可靠?
三种都是一样的用法。接收的是String类型的参数,只是你参数放的不一样而已。
log.debug(String s)
第三种报错,不知道你定义的vo是什么类型的。
你如果定义是String vo类型的就不会报错,否则就需要像前两种一样,转换为String字符串类型,才不会报错。
log.debug(vo.tostring),log.debug()方法内参数接收的是string类型。
你log.debug(vo)这句在eclipse里不会报错吗?
重载方法第一个参数都是String,你直接传其他对象,按理说编译都无法通过,更不用说运行了。
前两种是等价的,一样可靠。第一种,系统会自动转成第二种变成字符串相加;
字符串加其他对象,系统会自动调用其他对象的toString()方法和原字符串拼在一起;
第三种方式报错,很明显类型不对,