• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

Проблема с нововведениями в 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
 
Мы в соцсетях:

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