A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 邝雄伟 中级黑马   /  2013-2-1 01:54  /  1997 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

Date d=new Date();//有构造函数 直接Date创建对象,获取系统当前时间

SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");//创建时间对象模板

sdf.format(d);    //将时间对象d转成指定的模板sdf
这里我就有疑问了  刚刚去查看了API文档发现format返回的是StringBuffer类型啊,应该是用StringBuffer来接受吧,但是我自己测试了一下只能用String  来接受  很奇怪呢!!!!???。
求解!!!

评分

参与人数 1技术分 +1 收起 理由
冯海霞 + 1

查看全部评分

4 个回复

倒序浏览
你没看明白啊?
  1. public StringBuffer format(Date date,
  2.                            StringBuffer toAppendTo,
  3.                            FieldPosition pos)
复制代码
写全了是这样吧,你的参数写全了吗????
format()方法用的是父类DateFormat里的public final String format(Date date)。

注意参数!!!

评分

参与人数 1技术分 +1 收起 理由
冯海霞 + 1

查看全部评分

回复 使用道具 举报
Format 是一个用于格式化语言环境敏感的信息(如日期、消息和数字)的抽象基类, 又定义了编程接口,用于将语言环境敏感的对象格式化为 String(使用 format 方法)和将 String 重新解析为对象(使用 parseObject 方法),format()方法的时间对象是Data对象,注意这个方法是Format的父类DataFormat里面format(Data data)方法的使用,其返回值是String类型。

评分

参与人数 1技术分 +1 收起 理由
冯海霞 + 1

查看全部评分

回复 使用道具 举报
楼主对多态和继承没有理解好
这是子类的方法
StringBuffer format(Date date, StringBuffer toAppendTo, FieldPosition pos)
          将给定的 Date 格式化为日期/时间字符串,并将结果添加到给定的 StringBuffer。

sdf.format(d);    你的方法在子类中没找到匹配的方法所有 到父类中找
这是父类的方法
public final String format(Object obj)格式化一个对象以生成一个字符串。这等效于
format(obj, new StringBuffer(), new FieldPosition(0)).toString();

参数:
obj - 要格式化的对象
返回:
格式化后的字符串。
抛出:
IllegalArgumentException - 如果该 Format 不能格式化给定的对象


你的方法应该是调用父类的方法 二父类的方法是 string 而不是 StringBuffer
昨天的技术分才给了1分 啊啊啊
以后回答问题不能偷懒了的 代码说明啊
转技术分的孩子伤不起啊

评分

参与人数 1技术分 +1 收起 理由
冯海霞 + 1

查看全部评分

回复 使用道具 举报
SimpleDateFormat是DataFormat的子类,formad(Data data)用的是父类的方法,返回指类型是String。看清楚API文档。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马