Почему java.io.Bits не публикуется?

Я много сделал с IO в Java и после поиска кода для преобразования примитивов в байтовые массивы и обратно я нашел источник для java.io.Bits на одном из сайтов с исходным кодом Java. После быстрого взгляда я понял, что это именно то, что мне нужно, за исключением того, что пакет закрыт. Поэтому я сделал копию, которую я опубликовал, сохранил в пакете своего проекта и использовал (уверяю вас, только в личных проектах). Я нахожу это очень полезным.

У меня вопрос, почему этот пакет закрыт? Я вижу, что это действительно полезно для людей, которые работают с IO, и я не вижу никаких недостатков от изменения его видимости для общественности (в rt.jar). Или, может быть, есть эквивалент (и, пожалуйста, не упоминайте другие библиотеки)?

Вот ссылка на случайно выбранный веб-сайт с исходным кодом Java для java.io.Bits: http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/6-b14/java/io/Bits.java

2 ответа

Решение

Вам наверняка придется спросить одного из разработчиков Java, но, сделав его закрытым, API можно рассматривать как "внутренний" - то есть он может измениться или исчезнуть в любое время. Это означает, что API может быть разработан относительно быстро, и ему не нужно проходить тот же относительно тщательный процесс тестирования, что и публичные API (поскольку они выпущены, они застряли там навсегда).

Короче говоря, обнародование API имеет долгосрочные последствия и требует гораздо больше работы, чем простое переключение.

Я рискнул бы предположить, что он начал свою жизнь как "взломанная вместе" группа функций, полезных для нескольких других классов в пакете ввода-вывода, и с тех пор просто остается там.

Конечно, это пакетный приват, но есть публичные API, которые демонстрируют такое же поведение, например ByteBuffer.wrap(array).getInt(index) и другие методы на ByteBuffer, Вы почти наверняка лучше использовать этот правильно разработанный, хорошо документированный общедоступный API, чем пытаться обернуть или скопировать внутренние детали реализации из Java.

Другие вопросы по тегам