Что находится внутри пакета 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.