Что находится внутри пакета com.sun?

Как javax содержит расширения, Что должен содержать пакет com.sun?

3 ответа

Решение

Он содержит эталонные реализации Sun Oracle стандартных API Java (EE). Среди прочего Mojarra (эталонная реализация Oracle JSF) и Glassfish (эталонная реализация Oracle EE Java) используют этот пакет. Желательно не использовать эти классы непосредственно в вашем коде, так как это сделает ваш код тесно связанным с реализацией. Кодирование против java(x) API напрямую позволяет изменять реализацию без изменения кода (например, MyFaces вместо Mojarra и JBoss AS вместо Glassfish).

Обратите внимание, что com.sun.* пакет не следует путать с sun.* пакет, который является внутренним классом Oracle JRE, который вы абсолютно не должны импортировать / использовать в своем коде, так как это сделает ваш код тесно связанным с make / версией JRE. Не используется sun.* Пакет вообще позволяет запускать ваш код во всех других реализациях JRE (OpenJDK, GCJ и т. д.).

Есть много мест, которые используют com.sun пакеты (некоторые из которых упоминаются в других ответах). Этот ответ конкретно касается использования com.sun в JavaFX. JavaFX - это библиотека пользовательского интерфейса, которая является частью OpenJDK.

Большая часть реализации JavaFX находится в com.sun классы. Когда JavaFX был открытым исходным кодом, разработчики JavaFX сделали следующий комментарий относительно использования com.sun классы в JavaFX:

Как всегда, непубличный API (или, скорее, неподдерживаемый API), то есть все, что не находится в пространстве имен javafx, например com.sun.*) не может зависеть от выпуска к выпуску. Но для тех из вас, кто интересуется, как все это работает, в неподдерживаемых пакетах есть кое-что очень важное, а для тех, кто хочет взломать OpenJFX, это будет еще более интересным.

Пакеты для внутреннего использования, к которым вам не нужен прямой доступ. Они могут быть изменены или удалены в любой версии Java. Вы можете найти исходный код для всех пакетов sun.* И com.sun.* В OpenJDK.

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