Это похоже на провал вывода. Первый метод явно намеревается вызвать второй метод с аргументом типа, являющимся тем же параметром типа T
, что и у него. Но, вероятно, компилятор не может понять это, потому что его система логических выводов недостаточно хороша.
В любом случае вы должны иметь возможность явно указать аргумент типа, и он должен избавиться от ошибки:
public <T> T fromJson( Reader jsonData, Class<T> clazz ) {
return this.<T>fromJson( jsonData, (Type)clazz );
}