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
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
- Patrick Roemer (30.10.2009 21:16)
- Andreas Thies (04.11.2009 15:04)
- Thorsten Nitz (31.10.2009 12:59)
- Patrick Roemer (31.10.2009 18:57)
