Callbacks in Java

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();
	}
}