在实现Runnable接口下的run()方法时,我需要调用另一个类的方法,由于这个方法不是静态的,不能通过,求解

这个是CommonClass.java文件////////////////////////////////////////////////////packagecom.T... 这个是CommonClass.java文件
////////////////////////////////////////////////////
package com.ThreadTest;

public class CommonClass {

/**
* @param args
*/
public void print(String Msg){
String threadName=Thread.currentThread().getName();
System.out.println(threadName+":"+Msg);
}

}
##########################
##########################
这个是CleanRead.java文件
/////////////////////////////////////////////////
package com.ThreadTest;

public class CleanRead {

/**
* @param args
*/
private String fname,lname;
//引用上面的CommonClass,实现run()方法时用到CommonClass下的print()方法
public static CommonClass cc=null;//开始时我没有加static修饰符
public CleanRead(){
cc=new CommonClass();
}
/**
省略若干与问题无关的代码
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
final CleanRead cr=new CleanRead();
Runnable r2=new Runnable(){
public void run(){
就在这儿run()方法内部,我需要调用CommonClass下的print()方法,开始的时候我没有将对象cc说明为静态的。MyEclipse就一直提示错误,不让我过去,提示说只有将cc改为静态的才可以通过,难道在实现run()的时候要使用其它类的方法的时候一定要是静态的么????
cc.print("getName()="+cr.getName());

}
};
Thread t2=new Thread(r2,"Thread_2");
t2.start();
}
哎,粘贴了这么多,也不知道有没有说清楚,有劳各位高手了。。。
展开
 我来答
cainiaokan
2011-04-04 · TA获得超过2917个赞
知道小有建树答主
回答量:651
采纳率:66%
帮助的人:614万
展开全部
因为你是在主函数里面构造的内部类,别忘了,主函数是static的,它不依赖于主函数所在的类。你应该把 Runnable r2=new Runnable(){//省略...}这段代码放到一个CleanRead的成员方法中,比如,在CleanRead类中,你写一个public void test(){}方法,然后把你的代码放到test方法体中,然后再main函数中调用,new CleanRead().test(); 就可以了
撒白风05F
2011-04-04 · TA获得超过1010个赞
知道小有建树答主
回答量:735
采纳率:0%
帮助的人:517万
展开全部
你可以实例化这个对象,然后用对象去引用它里面的方法!
调用一个类的方法有两种方式
1、类名.静态方法();
2、类名 cc = new 类名();
cc.方法名();
追问
在构造方法中我已经实例化了那个对象了啊
public CleanRead(){
cc=new CommonClass();
}
哎,怪我,在MyEclipse下缩进很好的,一粘过来就惨不忍睹了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式