Подтвердить что ты не робот

Какие функции Java исторически начинаются как шаблон и теперь являются языковой функцией?

Буду честным. Мне нужна помощь с вопросом о домашнем задании, с которым я столкнулся.

Опишите то, что исторически началось как шаблон и теперь поддерживается языковая функция в Java.

4b9b3361

Ответ 1

Они, вероятно, ищут enum s.

Прежде чем Java 1.5 представила поддержку языка для enum s, стандартная практика заключалась в определении набора public static final int в качестве значений перечисления.
Этот шаблон можно увидеть повсюду в Swing.

Многие из этих констант определены в интерфейсах, так что классы могут реализовать интерфейс и использовать константы без квалифицирующего имени; SwingConstants - отличный пример.

Ответ 2

Самый очевидный образец, о котором я могу думать, это итерация через Iterable<T> и Iterator<T>, который теперь доступен как функция через расширенный для каждого цикла.

Ответ 4

Аннотации относятся к метаданным, которые использовались для хранения в различных файлах xml или в комментариях javadoc, теперь вы можете использовать аннотации для хранения метаданных с кодом.

Включение зависимостей - это еще один шаблон, который, хотя и не является частью языка java, проникает в основные рамки jdk.

Ответ 5

итераторов. У них есть специальный цикл, который преобразуется в вызовы hasNext() и next().

Ответ 6

Я бы предложил Generics. Это не было частью Java с самого начала, но было реализовано от 1,5 и выше.

Ответ 7

перечислений.........................

Ответ 8

Наблюдатель/Наблюдаемый, который является образцом "Наблюдателя [GOF]" от банды четырех...: http://www.exciton.cs.rice.edu/JavaResources/DesignPatterns/book/hires/pat5gfso.htm

Comparator<T>, который является шаблоном "Стратегия [GOF]" также из группы из четырех: http://www.exciton.cs.rice.edu/JavaResources/DesignPatterns/book/hires/pat5ifso.htm

И еще много!

Ответ 10

(К сожалению, извините. Всегда думал, что С++-шаблоны имеют какое-то отношение к шаблону. Я был не прав)

< < < < < Игнорируйте следующие строки → → >

Не уверен, что я прав, но позвольте мне сделать снимок.

Java Generics примерно основаны на шаблоне шаблона

http://blogs.msdn.com/b/csharpfaq/archive/2004/03/12/88913.aspx (Ссылка на С# generics, хотя)

Ответ 11

Не было добавлено много функций language, которые появляются в JLS.

Возможно, вы могли бы утверждать, что @Override поддерживает шаблон переопределяющих/реализующих методов, обнаруживая, когда метод был включен, чтобы переопределить родительский метод/реализовать метод интерфейса, но не делает.

http://java.sun.com/docs/books/jls/third_edition/html/interfaces.html искать @Override

Ответ 12

Я заметил, что никто не упоминал Prototype (клон) и Momento (Serializable).