Generic callback object, but I need the type parameter inside methods
One thing that bothers me is, that I have both the type parameter for the class and I am passing in the class to the constructor. It seems like I should not need to pass in the same info in two different ways.


The reason for why you have to do that is because of Type Erasure. Simply put, the generic class is only known during compile-time.




This call is unnecessary in your constructor: super();
All your fields should be marked with final.
Class mType; should be Class&lt;T&gt; mType;
I believe the mType.cast is unnecessary here:

mBus.post(mType.cast(response));


simply mBus.post(response); is enough. The eventbus will automatically detect the class by calling obj.getClass() and invoke the appropriate listeners.

In fact, your response variable is already declared as T response; so I don't see what good casting it will do.