Как зайти в Даркнет?!
25th January, 01:11
6
0
Как в tkinter из поля ввода Entry получить значение в одну переменную и обновить строку кнопкой, затем получить ещё одно введённое значение и затем сложить их. Ниже пример кода
21st July, 19:00
894
0
Программа, которая создает фейковые сервера в поиске игровых серверов CS 1.6 Steam
21st March, 17:43
948
0
Очень долго работает Update запрос Oracle
27th January, 09:58
914
0
не могу запустить сервер на tomcat HTTP Status 404 – Not Found
21st January, 18:02
905
0
Где можно найти фрилансера для выполнения поступающих задач, на постоянной основе?
2nd December, 09:48
938
0
Разработка мобильной кроссплатформенной военной игры
16th July, 17:57
1724
0
период по дням
25th October, 10:44
3955
0
Пишу скрипты для BAS только на запросах
16th September, 02:42
3720
0
Некорректный скрипт для закрытия блока
14th April, 18:33
4613
0
прокидывать exception в блоках try-catch JAVA
11th March, 21:11
4381
0
Помогите пожалуйста решить задачи
24th November, 23:53
6086
0
Не понимаю почему не открывается детальное описание продукта
11th November, 11:51
4350
0
Нужно решить задачу по программированию на массивы
27th October, 18:01
4396
0
Метода Крамера С++
23rd October, 11:55
4309
0
помогите решить задачу на C++
22nd October, 17:31
4002
0
Помогите решить задачу на python с codeforces
22nd October, 11:11
4492
0
Python с нуля: полное руководство для начинающих
18th June, 13:58
2599
0
Java аннотации
Какова цель аннотаций в Java? У меня есть это нечеткое представление о них как о чем-то промежуточном между комментарием и реальным кодом. Влияют ли они на программу во время выполнения?
Каковы их типичные обычаи?
Являются ли они уникальными для Java? Существует ли эквивалент C++?
Аннотации в основном используются кодом, который проверяет другой код. Они часто используются для изменения (например, декорирования или упаковки) существующих классов во время выполнения, чтобы изменить их поведение. Такие фреймворки, как JUnit и Hibernate , используют аннотации, чтобы минимизировать объем кода, который необходимо написать самому, чтобы использовать фреймворки.
Oracle имеет хорошее объяснение понятия и его значения в Java на их сайте.
Кроме того, они уникальны для Java, есть ли эквивалент C++?
Кроме того, они уникальны для Java, есть ли эквивалент C++?
Нет, но VB и C# имеют атрибуты , которые являются одним и тем же.
Их применение довольно разнообразно. Один типичный пример Java, @Override не влияет на код, но он может быть использован компилятором для создания предупреждения (или ошибки), если оформленный метод фактически не переопределяет другой метод. Аналогичным образом, методы могут быть помечены как устаревшие.
А потом-отражение. Когда вы отражаете тип класса в своем коде, вы можете получить доступ к атрибутам и действовать в соответствии с информацией, найденной там. Я не знаю никаких примеров в Java, но в .NET это используется компилятором для генерации (de)информации сериализации для классов, определения структуры памяти структур и объявления импорта функций из устаревших библиотек (среди прочего). Они также управляют тем, как работает конструктор форм IDE.
Атрибуты /EDIT: в классах сопоставимы с интерфейсами тегов (например, Сериализуемыми в Java). Однако в руководстве по кодированию .NET говорится, что не следует использовать интерфейсы тегов. Кроме того, они работают только на уровне класса, а не на уровне метода.
Андерс дает хорошее резюме, и вот пример аннотации JUnit
@Test(expected=IOException.class)
public void flatfileMissing() throws IOException {
readFlatFile("testfiles"+separator+"flatfile_doesnotexist.dat");
}
Здесь аннотация @Test говорит JUnit, что метод flatfileMissing -это тест, который должен быть выполнен, и что ожидаемый результат-это брошенный IOException . Таким образом, при выполнении тестов этот метод будет вызван, и тест пройдет или не пройдет в зависимости от того, будет ли брошен IOException .
Чтобы увидеть некоторые интересные вещи, которые вы можете сделать с аннотациями, проверьте мои JavaBean аннотации и процессор аннотаций .
Они отлично подходят для генерации кода, добавления дополнительных проверок во время сборки, и я также использую их для фреймворка сообщений об ошибках (еще не опубликован-нужно прояснить с боссами...).
По буквальному определению аннотация добавляет примечания к элементу. Точно так же Java аннотации-это теги, которые мы вставляем в исходный код для предоставления дополнительной информации о коде. Java аннотации связывают информацию с аннотируемым программным элементом. Помимо Java аннотаций Java программы имеют большое количество неофициальной документации, которая обычно содержится в комментариях в файле исходного кода. Но, Java аннотации отличаются от комментариев они аннотируют программные элементы непосредственно, используя типы аннотаций для описания формы аннотаций. Java аннотации представляют информацию в стандартном и структурированном виде, так что она может быть легко использована средствами обработки.
Чтобы прочитать подробно, есть хороший учебник по Java аннотации
Когда вы используете аннотацию Java's @Override и почему? Ссылка ссылается на вопрос о том, когда следует использовать аннотацию override (@override).. Это может помочь понять концепцию аннотации better.Check out.
Аннотации, когда речь заходит о EJB, известны как выбор неявного подхода среднего уровня вместо явного подхода среднего уровня , когда вы используете аннотацию, вы настраиваете то, что вам точно нужно от API например вам нужно вызвать метод транзакции для банковского перевода : без использования аннотации : код будет следующим
transfer(Account account1, Account account2, long amount)
{
// 1: Call middleware API to perform a security check
// 2: Call middleware API to start a transaction
// 3: Call middleware API to load rows from the database
// 4: Subtract the balance from one account, add to the other
// 5: Call middleware API to store rows in the database
// 6: Call middleware API to end the transaction
}
при использовании аннотации ваш код не содержит громоздких API вызовов для использования середины- услуги сантехника. Код чистый и ориентирован на бизнес-логику
transfer(Account account1, Account account2, long amount)
{
// 1: Subtract the balance from one account, add to the other
}
Аннотации, форма метаданных, предоставляют данные о программе, которая не является частью самой программы. Аннотации не оказывают прямого влияния на работу кода, который они аннотируют.
Аннотации имеют ряд применений, среди которых:
- Информация для компилятора -аннотации могут использоваться компилятором для обнаружения ошибок или подавления предупреждений.
- Время компиляции и deployment-время обработки -программные средства могут обрабатывать информацию аннотаций для создания кода, XML файлов и т. д.
- Обработка во время выполнения — некоторые аннотации доступны для изучения во время выполнения.
Область видимости определяется константами java.lang.annotation.RetentionPolicy SOURCE, CLASS и RUNTIME
RetentionPolicy.SOURCE: аннотация будет доступна в исходном коде программы и может быть использована компилятором или apt для генерации кода.RetentionPolicy.CLASS: аннотация будет находиться в файле .class, но она не будет доступна во время выполнения. Используемые инструментами манипулирования байтовым кодом, такими как ASM , выполняют модификацииRetentionPolicy.RUNTIME: аннотация будет доступна в файле .class и во время выполнения, для проверки через java отражение через getAnnotations().