Java Реализация реализации Queueadt - PullRequest
0 голосов
/ 26 апреля 2018

Это общий вопрос о синтаксисе реализации реализации ADT.

Итак, я создал вызов класса Airline, который реализует интерфейс Queue, и мне нужно было создать экземпляр очереди прибытия, например, на основе типа Airline

В чем разница между

private Queue<Airline> queue = new Queue<>();

и

private Queue<Airline> queue = new Queue<Airline>();

1 Ответ

0 голосов
/ 27 апреля 2018
private Queue<Airline> queue = new Queue<Airline>();

Выше указано, как универсальные типы должны были быть указаны с момента их выпуска в Java 5. У вас есть Queue универсального типа Airline, поэтому вы создаете экземпляр как таковой (на с правой стороны) и объявляют как таковые (с левой стороны.)

В Java 7, однако, введен оператор Diamond , который позволяет генерировать обобщенный тип, который является экземпляром , из обобщенного типа, который объявлен :

private Queue<Airline> queue = new Queue<>();

Таким образом, в этом примере компилятор делает вывод, что экземплярный тип должен быть Queue<Airline> из объявления, и обрабатывает его как таковой.

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

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