Несоответствие возвращаемых типов

224
04 апреля 2018, 11:39

Есть класс (ByteArrayOutputStream). Хочу добавить его наследнику поддержку интерфейса SeekableByteChannel. Проблема в методе size(). Для ByteArrayOutputStream он объявлен как

public int size()

А для SeekableByteChannel

long size()

Если оставить базовую реализацию или продублировать свою

public int size() {
    super.size();
}

То получаю две ошибки

Error:(12, 8) java: ByteArrayOutputSeekableStream is not abstract and does not override abstract method size() in java.nio.channels.SeekableByteChannel

Error:(147, 17) java: size() in ByteArrayOutputSeekableStream cannot override size() in java.io.ByteArrayOutputStream
return type long is not compatible with int

Если метод перепределить

public long size() {
    super.size();
}

то получаю ошибки

Error:(157, 17) java: size() in ByteArrayOutputSeekableStream cannot override size() in java.io.ByteArrayOutputStream return type long is not compatible with int

Error:(37, 16) java: size() in ua.com.radiosoft.BufferedOutputSeekableStream cannot implement size() in java.nio.channels.SeekableByteChannel return type int is not compatible with long

Error:(38, 26) java: incompatible types: possible lossy conversion from long to int

Проблема как-то решается? Или нужно добавлять в класс метод

public SeekableByteChannel getChannel();

и отдавать какой-то адаптер?

READ ALSO
Получение объекта из TreeSet

Получение объекта из TreeSet

Есть TreeSetсостоящий из объектов класса User как получить первый элемент коллекции? В классе User нет геттеров и сеттеровКод User:

201
Независимая функция в веб приложении Java

Независимая функция в веб приложении Java

Есть веб сервис на сервлетахНужно чтобы в приложении при запуске создавался отдельный поток(и) который делает какую то функцию

207
десериалиазация Jackson null значения в empty collection

десериалиазация Jackson null значения в empty collection

Имеется json строка для представляющая какой то POJO класс , в котором есть коллекции и Map , в json проставленны значения null :

203
Получение объекта с Retrofit RxJava

Получение объекта с Retrofit RxJava

Имеется метод requestQuery(String query) основная задача которого состоит в том, чтобы возвращать список объектов List<QueryData> после их загрузки RetrofitomОбъект...

190