Jestem refactoring android projektu, który jest coraz duży. Uruchomione strzępki dają mi dostęp do prywatnego członka pomiędzy zewnętrznymi i wewnętrznymi klasami JSME. Biorąc pod uwagę następujący przykładCzy konstruktor prywatnej klasy wewnętrznej jest również prywatny?
public class Outer {
private Inner mInner = new Inner();
private class Inner {}
}
mogę uzyskać informacje
Name
private field Inner mInner
Location
class Outer (default package)
Problem synopsis
Access to private member of class 'Inner' at line 2
Problem resolution
Make 'Inner' constructor package-local
stosujących rozwiązanie problemu zmienia źródło na
public class Outer {
private Inner mInner = new Inner();
private class Inner {
Inner() {}
}
}
jestem trochę zdezorientowany w tym momencie. Do tej pory myślałem, że przykład będzie równoznaczny z
Czy jestem w tym przypadku błędny, czy jest to kwestia kłaczków?
Możliwy duplikat [Czy powinniśmy zadeklarować publicznego konstruktora, gdy klasa jest zadeklarowana jako pakiet prywatny?] (Http://stackoverflow.com/questions/243218/should-we-declare-a-public-constructor-when- klasa-jest-zadeklarowana jako pakiet-pri) –
za każdym razem, gdy deklarujesz klasę jako prywatną, wszystko, co należy do tej klasy, staje się prywatne – awsome
@ cricket_007 niestety nie. Nie dotyczy to części, której dotyczy skarga. – tynn