• 手机版

    扫码体验手机版

  • 微信公众号

    扫码关注公众号

国内首家协议开发

软芯音视解码保护平台

在线
客服

发布
需求

在线
聊天

天盟
APP

天盟APP下载

关注
微信

微信扫一扫访问
顶部

Java中instanceof运算符的问题?

Calendar calendar = Calendar.getInstance();                System.out.println("calendar is an instance of GregorianCalendar : " + (calendar instanceof GregorianCalendar));为什么结果是"true"呢?搜索了几个小时也没搞明白。

免责声明:本内容仅代表回答会员见解不代表天盟观点,请谨慎对待。

版权声明:作者保留权利,不代表天盟立场。

使用道具 举报

全部参与3

进去看源码啊。。 你是认为Calendar.getInstance();拿到的是Calendar类型的,所以以为应该返回false吧?
其实他返回的就是一个GregorianCalendar类型的。 用的是父类的引用罢了。 多看看源码吧

使用道具 举报

补充一下:GregorianCalendar是 Calendar 的一个具体子类,instanceof通过返回一个布尔值来指出,这个对象是否是这个特定类或者是它的子类的一个实例。

使用道具 举报

,instanceof 判断该对象的具体类型是否是你猜测的类型,是一种猜测语法,例如,你看到一个蒙面侠jack,你说他是黑人,黄种人,白种人?猜对了就和true,否则false,
人类 Person, 黑人BlackPerson ,黄种人YellowPerson,白人WhitePerson,都extends Person,
你可以这么猜
if(jack instanceof BlackPerson){
当jack是黑人的时候要干嘛
}else if(ack instanceofYellowPerson){
当jack是黄种人的时候要干嘛
}

使用道具 举报

发新帖

发布任务需求已有1031167位用户正在使用天盟网服务

发布分类: *
任务预算: *
需求内容: *
手机号码: *
任务商家报价为
  • 预算价 :
  • 成交价 :
  • 完工期 :
  • 质保期 :

* 最终任务项目以服务商报价、双方协商为准!