Błąd w funkcji

0

Mam pewne pytanie otóż ten kod mi nie działa czy potrzebuje dodatkowej biblioteki by tak używać static od razu przypisujac ?

public static enum Scope
  {
    static
    {
      GROUP_ID = new Scope("GROUP_ID", 2);
      TESTS = new Scope("TESTS", 3);
      SUBCLASSES = new Scope("SUBCLASSES", 4);
      Scope[] arrayOfScope = new Scope[5];
      arrayOfScope[0] = LIBRARY;
      arrayOfScope[1] = LIBRARY_GROUP;
      arrayOfScope[2] = GROUP_ID;
      arrayOfScope[3] = TESTS;
      arrayOfScope[4] = SUBCLASSES;
      $VALUES = arrayOfScope;
    }
  }
}
1

WTF?

0

Statyczny inicjalizator raczej nie jest tu problemem. Łatwiej byłoby coś stwierdzic jakbyś napisać jakie błędy ci się pojawiły...

0

Oto cały kod :

import java.lang.annotation.Annotation;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Retention(RetentionPolicy.CLASS)
@Target({java.lang.annotation.ElementType.ANNOTATION_TYPE, java.lang.annotation.ElementType.TYPE, java.lang.annotation.ElementType.METHOD, java.lang.annotation.ElementType.CONSTRUCTOR, java.lang.annotation.ElementType.FIELD, java.lang.annotation.ElementType.PACKAGE})
public @INTERFACE RestrictTo
{
public abstract Scope[] value();

public static enum Scope
{
static
{
GROUP_ID = new Scope("GROUP_ID", 2);
TESTS = new Scope("TESTS", 3);
SUBCLASSES = new Scope("SUBCLASSES", 4);
Scope[] arrayOfScope = new Scope[5];
arrayOfScope[0] = LIBRARY;
arrayOfScope[1] = LIBRARY_GROUP;
arrayOfScope[2] = GROUP_ID;
arrayOfScope[3] = TESTS;
arrayOfScope[4] = SUBCLASSES;
$VALUES = arrayOfScope;
}
}
}

0

Error:(25, 19) error: illegal start of type
Error:(29, 3) error: class, interface, or enum expected
Error:(25, 21) error: = expected
Error:(23, 38) error: <identifier> expected
Error:(27, 29) error: = expected
Error:(26, 35) error: <identifier> expected
Error:(24, 21) error: = expected
Error:(23, 19) error: illegal start of type
Error:(25, 20) error: <identifier> expected
Error:(25, 31) error: ';' expected
Error:(23, 20) error: <identifier> expected
Error:(22, 32) error: <identifier> expected
Error:(26, 20) error: <identifier> expected
Error:(25, 22) error: ';' expected
Error:(24, 19) error: illegal start of type
Error:(23, 39) error: ';' expected
Error:(26, 36) error: ';' expected
Error:(23, 22) error: ';' expected
Error:(26, 19) error: illegal start of type
Error:(22, 33) error: ';' expected
Error:(22, 22) error: ';' expected
Error:(24, 33) error: <identifier> expected
Error:(24, 22) error: ';' expected
Error:(23, 21) error: = expected
Error:(27, 15) error: illegal start of type
Error:(24, 34) error: ';' expected
Error:(25, 30) error: <identifier> expected
Error:(26, 21) error: = expected
Error:(26, 22) error: ';' expected
Error:(24, 20) error: <identifier> expected
Error:(22, 21) error: = expected
Error:(22, 20) error: ']' expected
Error:(20, 17) error: <identifier> expected
Error:(19, 12) error: <identifier> expected
Error:(17, 6) error: '}' expected
Error:(18, 15) error: <identifier> expected
Error:(16, 5) error: ',', '}', or ';' expected
Error:(15, 4) error: <identifier> expected

0
  1. Nie musisz pisać public ani abstract w metodach interfejsów, ponieważ one są domyślnie public oraz abstract.
  2. Nie musisz pisać static przy enumie, bo on jest domyślnie static.
  3. Nie możesz sobie tak po prostu wywołać new Scope("GROUP_ID", 2) ponieważ Twój enum nie ma konstruktora (musisz go dodać).
  4. Nie ma czegoś takiego jak $VALUES
  5. Nie tak definiuje się elementy enuma, spróbuj tak:
enum Scope {
   GROUP_ID, TESTS, SUBCLASSES
}

Lub, jeśli chcesz mieć parametry w enumie to:

enum Scope {
    GROUP_ID("GROUP_ID", 2),
    TESTS("TESTS", 3),
    SUBCLASSES("SUBCLASSES", 4);

    Scope(String name, int id) {
        // tutaj możesz coś zrobic z tymi parametrami
    }
}
0

Proponuję zacząć od linku poniżej - tego nie jest tak dużo, a ułatwi:
https://javastart.pl/static/category/podstawy-jezyka/

1 użytkowników online, w tym zalogowanych: 0, gości: 1