我想在RunnerClass中调用一个方法,在ThreadClass中以非静态方式调用。
parseMissingKeyHandler
显然这不起作用。该方法不是静态的(我不允许将其设置为静态),但在上面的示例中,我试图以静态方式访问它,只是因为我认为它最能代表我想要做的事情。
如果它有意义,我希望线程能够通知CallingClass的实例,它需要调用someMethod()
有没有一种巧妙的方法可以做到这一点?
答案 0 :(得分:2)
你可以使用ThreadClass作为CallingClass的内部类,并直接调用mothod。
1509075042823 12.91877675 80.0466234--> first iteration
1509075042823 12.91877675 80.0466234--> Second iteration--->Array Size -->1
1509074972821 12.91738175 80.05294765--> first iteration
1509074972821 12.91738175 80.05294765--> Second iteration--->Array Size -->1
1509073795109 13.05561879 80.11920979--> first iteration
1509073795109 13.05561879 80.11920979--> Second iteration--->Array Size -->1
1509075132826 12.97988349 80.16310309--> first iteration
1509075132826 12.97988349 80.16310309--> Second iteration--->Array Size -->1
1509073885111 13.06640175 80.2457003--> first iteration
1509073885111 13.06640175 80.2457003--> Second iteration--->Array Size -->1
答案 1 :(得分:2)
创建获取ClassTwo
类型参数的CallingClass
构造函数怎么样?
public class ThreadClass extends Thread{
CallingClass callingClass;
public ThreadClass(CallingClass callingClass) {
this.callingClass = callingClass;
}
public void run(){
//Some thread logic
callingClass.someMethod();
}
}
并像这样创建ClassTwo
:
public class CallingClass{
CallingClass(){
ClassTwo thread = new ClassTwo(this);
thread.start();
}
public void someMethod(){}
}