Adott a következő Java fájl:
package package2; public class Callee { public InnerClass m1() { return new InnerClass(); } public void m2(final InnerClass innerClass) { } } class InnerClass { public void m3() { } }
Vegyük észre, hogy az InnerClass default elérési módosítóval rendelkezik, így csak a package2 csomagon belül látható.
És egy másik csomagban lévő kódrészlet, ami az előbbieket használja:
final Callee callee = new Callee(); callee.m1(); callee.m1().m3(); callee.m2(null);
A fenti három metódushívásból van-e olyan, amelyik fordítási hibát okozni? Ha igen, akkor mely, illetve melyek azok?
Válasz hajtás után.
Csak a callee.m1().m3() okoz fordítási hibát.
A Netbeans 6 az m1() és m2() metódusoknál figyelmeztet is a következővel: exporting non-public type through public API.
Legutóbbi hozzászólások
9 év 15 hét
10 év 4 hét
10 év 8 hét
10 év 26 hét
11 év 28 hét
11 év 34 hét
11 év 34 hét
11 év 35 hét
11 év 45 hét
12 év 15 hét