setDaemon()和isDaemon

java0135012 2009-05-07 03:57:05
setDaemon()和isDaemon

当t1.setDaemon(true);之后,使用
public final boolean isDaemon(){
return false;
}

编译也能通过?

这里的false和true都怎么解释?我有点乱!!呵呵

...全文
653 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
KingZChina 2009-05-11
  • 打赏
  • 举报
回复
没报错就通过了呗 有其他错 跑起来再看嘛
dreamhunter_lan 2009-05-08
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 java0135012 的回复:]
谢谢

问的直接点isDaemon()用在哪里?怎么用?
[/Quote]
自己看API文档去
java0135012 2009-05-08
  • 打赏
  • 举报
回复
谢谢

问的直接点isDaemon()用在哪里?怎么用?
dreamhunter_lan 2009-05-08
  • 打赏
  • 举报
回复
我想问的是你的类是怎么实现的,如果是继承自Thread的话肯定是编译不通过的,因为Thread中的isDaemon()是final的,要是不是继承自Thread,也就是下面这样:
class Test {
public final boolean isDaemon() {
return false;
}

Thread t = new Thread();//当然你创建的Thread对象可能还传了别的参数
t.setDaemon(true);
System.out.println(t.isDeamon());//这里调的是Thread中的isDaemon()而不是你写的isDaemon()
t.start();
}

有一点要提醒的是setDaemon()不要在start()后调用。。。
jxst051665 2009-05-07
  • 打赏
  • 举报
回复
你把真正的函数覆盖掉了,再说就是第四遍了
java0135012 2009-05-07
  • 打赏
  • 举报
回复
返回true编译也能过,为什么?
jxst051665 2009-05-07
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 jxst051665 的回复:]
setDaemon(true);
设置它为守护线程

使用
public final boolean isDaemon(){
return false;
}
这算重写了父类的函数

不冲突吧

isDaemon()的返回值我昨天看Thinking in java时候也很混乱,我给你页码你自己领会下
英文第四版 813页
[/Quote]
记错了,isDaemon()返回值很明确的
混乱的是有关isInterupt()和interupt(),抱歉哈、
hwlhwj 2009-05-07
  • 打赏
  • 举报
回复
编译肯定能通过啦,Thread的isDaemon就是用来测试线程是否为守护线程,你在自己的类中覆盖了Thread的isDaemon方法,所以当你把线程设为守护线程后,用isDaemon无论如何都会返回false.
jxst051665 2009-05-07
  • 打赏
  • 举报
回复
setDaemon(true);
设置它为守护线程

使用
public final boolean isDaemon(){
return false;
}
这算重写了父类的函数

不冲突吧

isDaemon()的返回值我昨天看Thinking in java时候也很混乱,我给你页码你自己领会下
英文第四版 813页

62,616

社区成员

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

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