(String)和.toString()的区别?

sunboard 2008-12-20 04:09:35
我是练习写个计数器的时候碰到的,先从Counter.txt读取数据,然后把数据放到ServletContext中,getAttribute 不是返回的object吗?为什么不能直接(String),让我郁闷了好久了啊

ServletContext sc=this.getServletContext();
String getCounter=sc.getAttribute("counter").toString();


这样写就可以,但是
ServletContext sc=this.getServletContext();
String getCounter=(String)sc.getAttribute("counter");


这样就报错?
...全文
85 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
psyuhen 2010-01-07
  • 打赏
  • 举报
回复

ServletContext sc=this.getServletContext();
String getCounter=sc.getAttribute("counter").toString();

其实每一个对象都有它的toString方法,因为它继承了OBject类。这也是你调用不报错的原因。

ServletContext sc=this.getServletContext();
String getCounter=(String)sc.getAttribute("counter");

这样的话,如果你强制转换的对象为NULL的话,那就可能报错。同时如果对象不是String的话,那么
也可能报错。
fosjos 2008-12-20
  • 打赏
  • 举报
回复
还有一招:String.valueOf(...)
fosjos 2008-12-20
  • 打赏
  • 举报
回复
确定不是null,用toString()
确定是String类,用(String)
fys249931556 2008-12-20
  • 打赏
  • 举报
回复
他已经确定返回值不是Null了。
但是并不是所有的Object对象都可以转换成String 类型。
网上也有例子。。学的时候就很郁闷。
Object obj = new Integer(1000);
String str=(String)obj;也是会报错的。
zhj92lxs 2008-12-20
  • 打赏
  • 举报
回复
String getCounter=(String)sc.getAttribute("counter");
sc.getAttribute("counter") 你能确定它返回的不是null

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧