не уверен, что здесь не так, но некоторое время не использовал обобщения, так что, вероятно, это то, что я не помню, но в основном этот код "должен" работать, насколько мне известно, но все же нет:
public static class MyModel {}
protected static <T extends MyModel> FlowableTransformer<Response<T>, T> convert(Class<T> responseClass) {
return observable -> observable.map((Function<Response<T>, T>) response -> {
MyModel m = new MyModel();
return (T)m;
});
}
При использовании этого я получаю Classcastexception во время выполнения. Основная идея заключается в том, что метод может возвращать либо «MyModel», либо любой из его подклассов (поэтому T расширяет MyModel). И все же теперь он не может вернуться с самой MyModel?
Очевидно, суть проблемы, а не фактический код. Любая помощь приветствуется.