2012-09-08 17 views
9

Dlaczego nie istnieje prywatna metoda, gdy po kompilacji tego pliku java używam javap classname na konsoli ?Metoda prywatna nie istnieje, gdy robimy javap nazwa_klasy

class A 
{ 
    private void one(){} 
    public void two(){} 
    protected void three(){} 
} 
+0

W ogóle dostaniesz bardziej użyteczną odpowiedź, jeśli jesteś w stanie wyjaśnić nieco więcej kontekstu, dlaczego jest to ważne . W tym przypadku odpowiedź jest zasadniczo "ponieważ nie". Jeśli podasz więcej informacji na temat szerszego problemu, który próbujesz rozwiązać, który jest utrudniony, nie wymieniając prywatnych metod, prawdopodobnie uzyskasz dodatkową pomoc w rozwiązaniu pierwotnego problemu. – EdC

Odpowiedz

17

metody prywatne nie są wyświetlane domyślnie, trzeba użyć:

javap -private A 
+0

tak działa, ale czy jest jakiś szczególny powód? –

+0

Prawdopodobnie dlatego, że ogromna większość przypadków użycia wymaga tylko pokazania metod 'publicznych' i' chronionych' i dlatego uczynienie 'prywatnych' metod opcjonalnymi ma sens :) – Reimeus

+0

@manishgupta nie zapomnij przyjąć tej odpowiedzi :) – Reimeus

Powiązane problemy