nntp2http.com
Posting
Suche
Optionen
Hilfe & Kontakt

Generics / Wildcards und Zugreifbarkeit

Von: Andreas Thies (andreas.thies@fernuni-hagen.de) [Profil]
Datum: 30.10.2009 17:44
Message-ID: <hcf51i$mf1$1@news-cedar.fernuni-hagen.de>
Newsgroup: de.comp.lang.java
Guten Abend,

ich komme an einer Stelle in Sachen Zugreifbarkeit (accessibility) und
Generics momentan nicht weiter und würde mich freuen, wenn jemand mit
mir gemeinsam einen Blick drüber werfen würde.

Im folgenden Beispiel befinden sich beide Klassen A und X im gleichen
package. Daher sollte von A aus sowohl X#i als auch X#m() zugreifbar sein.

Während dies in Methode m1 und m2 auch problemlos klappt, verlangt der
Compiler für die Zugriffe in m3 mindestens package-Sichtbarkeit für X#i
und X#m.

class A {

public  <T  extends  X>  void  m1(T  t){
t.m();  //  okay
t.i++;  //  okay
}

public  void  m2(List<X>  l)  {
l.get(0).m();  //  okay
l.get(0).i++;  //  okay
}

public void m3(){
List<? extends X> x;
x.get(0).m();  //  Compilerfehler
x.get(0).i++;  //  Compilerfehler
}
}

class  X  {
int  i;
void  m(){}
}

Weder die Language Specification, noch die FAQ von Frau Langer bietet
nach erstem Suchen Hilfe. Oder stehe ich einfach nur auf dem Schlauch?

Viele Grüße,

Andreas

[ Auf dieses Posting antworten ]

Antworten