CallbackInterface.java
public interface CallbackInterface {
void CallWhenDone();
}
ClassB.java
public class ClassB {
CallbackInterface callback;
public void DoingSomething()
{
System.out.println("Doing something for 2 seconds");
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
callback.CallWhenDone();
}
public void setCallback(CallbackInterface c)
{
callback = c;
}
}
ClassA.java
public class ClassA implements CallbackInterface {
@Override
public void CallWhenDone() {
System.out.println("I am all done!");
}
public void doSomething()
{
ClassB b = new ClassB();
b.setCallback(this);
b.DoingSomething();
}
public static void main(String[] args) {
ClassA a = new ClassA();
a.doSomething();
}
}