Есть класс (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();
и отдавать какой-то адаптер?
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости