Представляя аннотациями
J2SE 5.0 введено много новых возможностей языка. Они включают поддержку для обобщения и улучшенный цикл. Предыдущий Tech Tips охватывает дженерики и улучшенный цикл. Другим важным нововведением в J2SE 5.0 аннотации. Этот совет изучает аннотации, которые встроены в J2SE 5.0.
Во-первых, что такое примечание? Определены как часть имени, аннотации предлагают способ связи метаданных с элементами программы (такие, как классы, интерфейсы и методы). Их можно рассматривать как дополнительный модификатор без изменения генерируемого байт-код для этих элементов.
Концепция внедрения метаданных в исходный код не является новой с J2SE 5.0. Вы можете добавить @ устаревшего тега Javadoc комментариев метода и компилятор воспринимает это как метаданные о методе. Эта способность была в месте с 1,0 освобождении J2SE. Исходная версия платформы уже устаревшими методами, GETENV () Метод системы (хотя это не было в спецификации языка программирования Java до 1,1 добавление). Концепция почти такое же, теперь, по крайней мере, @ частью синтаксиса. Только расположение изменилось - аннотации тэг в источнике, а не комментария. Основным моментом здесь является то, что аннотация систематический способ поддержки декларативной модели программирования.
Это приводит к первой аннотацией, которая поставляется с J2SE 5.0: @ рекомендуется. Обратите внимание на капитал D здесь. Функциональный, @ Запрещены Источник работает так же, как @ устаревшим Javadoc, связанный с классом или методом. По маркировки методами с @ Запрещены тега, вы предупреждений компилятора, чтобы предупредить пользователей при использовании метода или класса.
Следующие основные классе метод с именем deprecatedMethod (), который помечен @ Запрещены аннотации и, @ устаревшим комментарий:
|
Вы составить класс с аннотациями, так же, как вы делаете для одного без аннотации:
> javac Main.java
Как и ожидалось, это производит Main.class.
Если вы используете устаревшие методы, производит компиляцию времени предупреждение - так же, как использование устаревшей @ тег в Javadoc. Вот пример:
|
Обобщение класс:
> javac User.java
и вы увидите следующее предупреждение об использовании устаревшего метода:
Note: User.java uses or overrides a deprecated API. Note: Recompile with -Xlint:deprecation for details.
Добавление-Xlint к составлению линия показывает, что конкретно является неправильным:
> javac -Xlint:deprecation User.java User.java:3: warning: [deprecation] deprecatedMethod() in Main has been deprecated Main.deprecatedMethod(); ^ 1 warning
Переход от устаревшей @ комментарий к @ Запрещены аннотации не вносит ничего существенно нового в систему. Она лишь слегка изменяет способ делать то же самое. Две другие новые аннотации доступны на платформе J2SE 5.0, @ и @ Override SuppressWarnings, делать новые функциональные возможности платформы.
Аннотации @ Override может быть использован метод деклараций. Как следует из названия, вы используете @ Override аннотации к флагом метода, который должен переопределить метод суперкласса. Почему это? Чтобы найти ошибку раньше. Сколько раз вы хотели, чтобы переопределить метод, но либо ошибки название метода, указаны неправильные аргументы, или же другого типа взамен? Иными словами, как часто вы определили новый метод, когда то, что вы действительно хотели сделать, это переопределить существующую? С помощью @ Override, вы обнаружите проблемы в следующий класс скорее рано, чем поздно:
|
Проблема здесь в том, что имя метода должно быть HashCode, а не хэш. Предположим, что объявление метода похоронен в источник для гораздо большего класса. Без первого @ Override аннотации, сколько времени потребуется, чтобы вы знали, что Ваш хэш () метод (с верблюжьей случае для работы с орфографическими, не все в нижнем регистре) не вызывается, и вы получаете по умолчанию поведение родительского объекта класс? Благодаря аннотации @ Override, составление класс производит ошибка компиляции, предупреждая вас к этой проблеме:
> javac Overrode.java Overrode.java:2: method does not override a method from its superclass @Override ^ 1 error
Чем раньше вы можете обнаружить ошибки такого рода, стоимость коррекции становится значительно сокращены. Обратите внимание, что хэш () метод никогда не должен вернуться постоянно. Для более полного описания надлежащее использование хэш () и составляет (), см. пункт 8 в книгу Эффективное программирование на языке Java руководством Джошуа Блоха.
Окончательный трех новых аннотаций в J2SE 5.0, @ SuppressWarnings, является наиболее интересным. Она сообщает компилятору не предупредить вас о том, чего он обычно предупреждает Вас о. Предупреждение относятся к категории, так что вы должны сказать аннотации, какие типы предупреждений подавить. Javac компилятор определяет семь вариантов подавить: все, неодобрение, не остановить, проваливаемся, пути, последовательно и окончательно. (Спецификации языка определяет только два таких типа: неодобрение и бесконтрольно.)
Чтобы продемонстрировать, давайте посмотрим на пресечение проваливаемся вариант. Давайте начнем со следующего класса. Обратите внимание, что класс отсутствует перерыв заявлении за каждый случай переключатель заявление:
|
Обобщение класс с Javac. Вы увидите, что оно просто создает файлы. Файле класса, и не проявляет никаких предупреждений:
javac Fall.java
Если вы хотите, чтобы компилятор предупредит вас о переключении заявлений, которые попадают через (то есть одно или несколько заявлений перерыва отсутствует), вам компилировать с-Xlint: проваливаемся вариант:
javac -Xlint:fallthrough Fall.java
Это дает следующее предупреждение:
Fall.java:6: warning: [fallthrough] possible fall-through
into case
case 1: System.out.println("1");
^
Fall.java:7: warning: [fallthrough] possible fall-through
into case
case 2: System.out.println("2");
^
Fall.java:8: warning: [fallthrough] possible fall-through
into case
case 3: System.out.println("3");
^
Fall.java:9: warning: [fallthrough] possible fall-through
into case
default : System.out.println("Default");
^
4 warnings
Но что если вы хотите игнорировать тот факт, что переключатель заявлении отсутствует перерыв заявлением в каждом конкретном случае? Вот где @ SuppressWarnings аннотацию вступает в игру. Если добавить следующие строки перед основными () Метод декларации:
@SuppressWarnings("fallthrough")
Компиляция класс-Xlint: проваливаемся вариант:
javac -Xlint:fallthrough Fall.java
создадим. классе файла и отображения никаких предупреждений.
@ SuppressWarnings аннотации могут быть также использованы для подавления других предупреждений таких как те, которые будут отображаться, если вы использовали коллекцию без указания типа данных коллекции элементов. Не используйте аннотацию @ SuppressWarnings просто избегать составления времени предупреждения. Используйте его, где отмеченное предупреждение неизбежно, например, при использовании библиотеки, которая строится не с дженериков в виду.
Это действительно об этом встроенный в аннотации. Однако одна вещь дополнительные сведения, аннотации (с любым аргументам) обычно указаны на линии сами по себе.
Существует гораздо больше, что можно сделать, когда вы определите свой собственный аннотации, а не использовать те, которые уже определены в J2SE 5.0. Дополнительную информацию об определении аннотации см.
Copyright (C) 2004-2005 Sun Microsystems, Inc
Все права защищены.
ServerSocket или DatagramSocket который из них лучше использовать в моем применений
Оба они хороши. Это зависит от задач и вы.
DatagramSocket предназначен для UDP и TCP для ServerSocket. TCP более надежны в плане, что оно обеспечивает доставку, UDP нет. Но UDP пакеты будут гораздо меньше и не такой большой, как заголовки пакета TCP есть.
Если она меньше, то есть больше вероятности, что он приходит быстрее. UDP используется в основном в районах, где вы не видите о ретрансляции. Вы просто не нужно это, потому что информация устарела. Звука, например.
Это лучше сделать небольшой паузы или повтор последних пакетов, чем играть какую-нибудь, что было отправить первого, но получили второй.
Именно от вас принять решение. Если вы не видите, что можете потерять кусочек данных - использование UDP. В противном случае используйте TCP.
Как преобразовать строку в шестнадцатеричные Int
Вы можете преобразовать шестнадцатеричный строку в Int в Java с помощью следующего кода:
|
Круглый GradientPaint заполнить демо
|
Как установить таймер на задачу для запуска в определенное
Этот совет Java иллюстрирует метод планирования таймер для задач для запуска в определенное время. Разработчик может использовать этот код, если есть необходимость выполнить или повторить задачу в заявку на предопределенный отрезок времени.
|
Как журнал вызова метода
Этот совет Java показан пример регистрации вызова метода. Методы звонки регистрируются с помощью функции ввода () и существующим () в журнал класса.
|
Ниже приведен пример выходных данных с использованием простого форматирования и следующим телефонам:
|
Как обнаружить перетащить начало жест в Applic
Этот совет Java Swing иллюстрирует метод обнаружения перетащить начало жест в вашем приложении. Подсказка показывает простое испытание DragGesture классы ли можно признать простым движением сопротивления. Разработчики могут использовать этот жест, чтобы выполнять различные функции.

|
Пример XML-файла
XML является для хранения структурированных данных. Ниже приведен пример Данные представлены в файле XML.
Каждый документ XML хорошо сформированной должен содержать версию стандарта XML используется и одного элемента документа. Элементом документа является корнем пункта. Все данные должны быть места под элементом документа.
XML замечания должны быть помещены в комментарии блоки следующим образом:
<!-- file: sample.xml --> <?xml version="1.0"?> <!-- our XML-document describes a purchase order --> <purchase-order> <date>2005-10-31</date> <number>12345</number> <purchased-by> <name>My name</name> <address>My address</address> </purchased-by> <!-- a collection element, contains a set of items --> <order-items> <item> <code>687</code> <type>CD</type> <label>Some music</label> </item> <item> <code>129851</code> <type>DVD</type> <label>Some video</label> </item> </order-items> </purchase-order>
Как войти исключением
Этот совет Java иллюстрирует пример лесозаготовок является исключением. Java предоставляет журнала () в классе Logger войти исключение. Кроме того, бросая () используется, чтобы вызвать исключение.
|
Ниже приведен пример выходных порожденных Пример:
|
Где я могу получить на языке программирования Java источник
Программное обеспечение Java имеет два отдельных связках исходный код, который вы можете получить на безвозмездной основе:
- The Java 2 SDK, Standard Edition itself contains a file called src.zip that contains the source code for the public classes in the java package. Because this does not contain sun.* classes, you cannot do a complete build of the Java technology from these source files. These source files are for your information, to supplement the documentation, so you can see how Java technology works.
- The full source code release is available from us by going to the web site..
Источник: Часто задаваемые вопросы о Java