Это возможно во время выполнения, но вам нужен токен общего типа.Обычно вы передаете это в конструктор вашего универсального типа
class SomeGeneric<T>
private Class<T> token;
public SomeGeneric(Class<T> token) {
this.token=token;
}
Затем в вашем методе вы можете проверить это во время выполнения
return token.cast(result) // throws ClassCastException