Java: использовать импорт или явное имя пакета / класса? - PullRequest
10 голосов
/ 27 апреля 2011

Я пишу очень простое приложение, расширяющее Swing JFrame. В чем разница между явной ссылкой:

public class LineTest extends javax.swing.JFrame {
...

или предварительно импортировать класс:

import javax.swing.JFrame;

public class LineTest extends JFrame {
...

Когда (и почему) вы бы использовали одну технику над другой?

Ответы [ 3 ]

21 голосов
/ 27 апреля 2011

Реальной разницы нет; сгенерированный байт-код будет точно таким же. Оператор import - это просто способ сказать компилятору «когда я пишу JFrame, я на самом деле имею в виду javax.swing.JFrame».

Возможно, вы захотите использовать полные имена пакетов, если у вас есть, например, два класса с одинаковыми именами в разных пакетах. Одним из распространенных примеров из стандартной библиотеки являются классы java.util.Date и java.sql.Date.

8 голосов
/ 27 апреля 2011

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

Единственная причина использовать полное имя в обычном коде - это когда вам нужно использовать два класса с одинаковым простым именем (например, java.util.List и java.awt.List) - в этом случае альтернативы нет.

3 голосов
/ 27 апреля 2011

Для компилятора это не имеет никакого значения. Недостатком использования полного имени является то, что вам придется писать его каждый раз, когда вы используете класс. Я использую полное имя только в том случае, если у меня есть два класса с одинаковым именем в разных пакетах. Таким образом, вы можете различаться между этими двумя классами

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