• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

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

    Запись на курс до 25 апреля. Получить промодоступ ...

Проблема с нововведениями в Java 1.6 (аннотации)

  • Автор темы lexluther
  • Дата начала
L

lexluther

Всем привет,

Помогите мне пожалуйста решить проблему с нововведениями в Java 1.6. Я пытаюсь реализовать аннотацию но она не работает.

Есть следующий класс (NewClassAttribute.java):

package myjavaapplication;

@interface NewClassAttribute {
String value();
}

Есть класс (NewClass.java):

package myjavaapplication;

@NewClassAttribute("NewClass")
public class NewClass
{
public NewClass()
{}

@Override
public void finalize()
{}
}

Есть класс main который делает получение аттрибута:

package myjavaapplication;

import static java.lang.System.out;
import static java.lang.System.in;

public class Main {

public static void main(String[] args) {

NewClass NC = new NewClass();

out.print(NC.getClass().getAnnotation(NewClassAttribute.class).value());
}
}

Т.е. я хочу вывести на вывод значение аттрибута "NewClass". Вроде код правильный, но он не работает так как постоянно вылетает Exception in thread "main" java.lang.NullPointerException

Вообщем NC.getClass().getAnnotation(NewClassAttribute.class) возвращает всегда null

NewClass.class.getAnnotation(NewClassAttribute.class).value() аналогично не работает.

Помогите пожалуйста, подскажите что я делаю неправильно.

PS: Также к примеру у меня аналогичные проблемы с энумерацией:

public enum NewClass
{
RED(20)
{
public NewClass next()
{
return RED;
}
}
}

Этот код просто не компилится (взят из учебника). Тогда как код:

public enum NewClass
{
RED
{
public NewClass next()
{
return RED;
}
}
}

компилится. Подскажите мне пожалуйста где есть небольшой но подробный справочник по нововведениям в сети?

Версия ОС:
Windows XP Service Pack 3

Версия JAVA (java -version):
java version "1.6.0"
Java(tm) SE Runtime Environment (build 1.6.0-b105)
Java HotSpot(tm) Client VM (build 1.6.0-b105, mixed mode, sharing)

Среда разработки (About окно):
Product Version: NetBeans IDE 6.1 (Build 200805300101)
Java: 1.6.0; Java HotSpot(tm) Client VM 1.6.0-b105
System: Windows XP version 5.1 running on x86; Cp1251; uk_UA (nb)
Userdir: G:\Documents and Settings\artiom\.netbeans\6.1
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!