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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始


提示:
ThreadTest.java:19: 错误: 无法从静态上下文中引用非静态 方法 getName()
                        System.out.println((Thread.curredThread()==this)+"..."+Thread.getName()+"...run"+".."+x);



代码如下:
  1. class Test extends Thread{

  2.         Test(String name){
  3.                 super(name);
  4.         }
  5.        
  6.         public void run(){
  7.                 for(int x=0; x<50; x++){
  8.                         System.out.println((Thread.currentThread()==this)+"..."+Thread.getName()+"...run"+".."+x);
复制代码





小弟最先思考的是是否是因为run方法需要在主函数中,创建了实体才会被调用,因此使用Thread.getName() 会出现静态访问报错,那么前面的Thread.currentThread()==this 这里为何可以通过呢?


难道是因为getName() 方法涉及到了实体创建和调用的原因?


望前辈们解惑,谢谢:)

QQ图片20141012010903.jpg (30.37 KB, 下载次数: 6)

QQ图片20141012010903.jpg

4 个回复

倒序浏览
public final String getName()  方法声明不是static的
回复 使用道具 举报
加个静态就好了、

点评

是的,之前脑袋没转过弯儿来,谢谢解答哈:)  发表于 2014-10-13 01:07
回复 使用道具 举报
十万一千 发表于 2014-10-12 23:42
public final String getName()  方法声明不是static的

昨天脑袋没转过弯来,谢谢啦~

currentThread(); 这个方法好像是静态的哈,所以可以被类名直接调用,对吧~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马