Kategorie szkoleń | Egzaminy | Kontakt
  • 1
  • 0
  • 44
Zaloguj się aby zadać pytanie
Pokrewne

Odpowiedź (1)

  • 0

Pytanie oznacza, czy da się skompilować i wykonać poniższy kod klasy generycznej:

public class MyClass<T> {
  private final T object;

  public MyClass() {
    this.object = new T();  // błąd kompilacji
  }
}

Próba zakończy się błędem kompilacji... Można to zachowanie wyjaśnić, dzięki mechanizmowi wymazywania typów (type erasure). Na etapie kompilacji gubiona jest informacja o typach generycznych - tym samym nie wiadomo, konstruktor jakiej klasy należy wywołać. Ta informacja będzie dostępna dopiero w momencie użycia klasy.

 

 

 

  • Odpowiedział
  • @ | 29.11.2015
  • TRENER MODERATOR ALTKOM AKADEMII