关于Object boolean的问题

jiangpengzz 2009-08-21 12:22:54
请教各位如下程序代码为什么不能执行:
public class Test {

public static void main(String[] args) {
p("abc".matches("..."));
}

public static void p(Object o) {
System.out.println(o);
}
}

提示错误:The method p(Object) in the type Test is not applicable for the arguments (boolean) Test.java /TestRegx/src line 4 Java Problem

boolean吗不是继承于Object类吗 ?
...全文
165 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
jiangpengzz 2009-08-21
  • 打赏
  • 举报
回复
感谢andycpp,确实是版本的问题,装了oracle后,jdk采用了1.4! 多谢!
lovecj6185 2009-08-21
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 andycpp 的回复:]
boolean是基本类型啊,不是对象
大写的才行,Boolean,这个继承自Object

估计是你的jdk估计版本比较旧,不支持自动装箱。
jdk1.5以后,有了自动装箱功能,系统会自动把boolean转换成Boolean,在我的机器上(jdk1.6)这个程序没有问题
[/Quote]

是这样的
自动装箱,拆箱功能是1.5以后的
andycpp 2009-08-21
  • 打赏
  • 举报
回复
boolean是基本类型啊,不是对象
大写的才行,Boolean,这个继承自Object

估计是你的jdk估计版本比较旧,不支持自动装箱。
jdk1.5以后,有了自动装箱功能,系统会自动把boolean转换成Boolean,在我的机器上(jdk1.6)这个程序没有问题
kakagui 2009-08-21
  • 打赏
  • 举报
回复
我这边执行的没有问题!
jiangpengzz 2009-08-21
  • 打赏
  • 举报
回复
那我这边什么问题呢 环境是 javac 1.6.0_14
Billy.Wang 2009-08-21
  • 打赏
  • 举报
回复
p("abc".matches("...")); 这里传入的是 比较结果已经是 基本类型 boolean值,而p方法的参数为对象,当然会提示 not applicable 不适用了。
asdujiayong 2009-08-21
  • 打赏
  • 举报
回复
方法参数是Object类型的;
传入("abc".matches("...")
返回的是boolean滴 ;
当然不匹配了。。。
好吃的松子 2009-08-21
  • 打赏
  • 举报
回复

boolean是基础类型,不是Object的子类
yuaa88 2009-08-21
  • 打赏
  • 举报
回复
我机器上可以运行的,打印TRUE的
haojia0716 2009-08-21
  • 打赏
  • 举报
回复
Boolean继承Object
boolean是基本类型
但是我这里能执行 应该是自动装箱机制的原因
jiangpengzz 2009-08-21
  • 打赏
  • 举报
回复
不是所有的东西都继承于Object吗
feishare 2009-08-21
  • 打赏
  • 举报
回复
楼主怎么会这样用?
boolean是基础数据类型,不是继承于Object,只有类对象才是继承自Object
jiangpengzz 2009-08-21
  • 打赏
  • 举报
回复
把代码重新贴一下 方便大家指导:
【code=Java】
public class Test {

public static void main(String[] args) {
p("abc".matches("..."));
}

public static void p(Object o) {
System.out.println(o);
}
}


【/code】

62,621

社区成员

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

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