Зачем импортировать javax.swing. * Вместо java.swing. * - PullRequest
13 голосов
/ 05 января 2010

Я не понял, почему к нескольким пакетам импорта добавлен «x» к «java». Какова причина? Разве это не может быть просто java.swing.*, как другие java.io.*?

Ответы [ 4 ]

20 голосов
/ 05 января 2010

Swing изначально был расширением Java - отдельно загружаемой библиотеки. Он стал частью «основной» JRE в Java 1.2. Было бы странно, если бы отдельная библиотека требовала пакета java. *, Отсюда и текущая ситуация. Существует множество других расширений с похожей историей.

Статья в Википедии о Swing содержит немного больше информации о своей истории.

17 голосов
/ 05 января 2010

Из Core Java 2:
альтернативный текст http://bks5.books.google.fr/books?id=W6bomXWB-TYC&printsec=frontcover&img=1&zoom=5&edge=curl&sig=ACfU3U3IeRSfENUVokGf-d9GUZZBU-tYMQ

Имя javax указывает на пакет расширения Java, а не на основной пакет. Классы Swing действительно являются расширением Java 1.1. Поскольку классы Swing не были частью базовой иерархии, можно загрузить классы Swing в браузер, совместимый с Java 1.1 (менеджер безопасности браузера не позволяет добавлять пакеты, начинающиеся с "java."). На платформе Java 2 пакет Swing больше не является расширением, а вместо этого является частью базовой иерархии. Любая реализация Java, совместимая с Java 2, должна предоставлять классы Swing. Тем не менее, имя javax остается для совместимости с кодом Java 1.1. (На самом деле пакет Swing начинался с com.sun.java.swing, затем ненадолго переместился на java.awt.swing в ранних бета-версиях Java 2, а затем вернулся к com.sun.java.swing в поздних бета-версиях Java 2 и после воплей протеста со стороны Java-программистов. , нашел свое последнее пристанище в javax.swing.)

5 голосов
/ 05 января 2010

По историческим причинам и обратной совместимости. До версии java 1.2 swing был распространен как отдельный пакет от java (отсюда и javax как расширение).

Когда swing стал частью стандартного java-дистрибутива, имя было сохранено для обратной совместимости. Больше информации в Википедии Статья

1 голос
/ 05 января 2010

x было потому, что они были расширениями. В версии 1.1 Java не было качели, и когда он был добавлен, они решили назвать его так: javax

Существует несколько пакетов с похожей историей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...