2013-03-07 10 views
5

W Eclipse, czy istnieje sposób, aby dowiedzieć się, która instrukcja return została zwrócona przez użytkownika bez rejestrowania flag przy każdej zwrocie?Punkt wyjścia z metody w Javie

Na przykład:

@Override 
public boolean equals(Object obj) { 
    if (this == obj) { 
     return true; 
    } 
    if (obj == null) { 
     return false; 
    } 
    if (!(obj instanceof ABC)) { 
     return false; 
    } 
    ABC other = (ABC) obj; 
    if (var1 == null) { 
     if (other.var1 != null) { 
      return false; 
     } 
    } else if (!var1.equals(other.var1)) { 
     return false; 
    } 
    return true; 
} 

W tym przypadku, w jaki sposób dowiedzieć się, w którym momencie moja metoda equals wrócił?

+12

Użyj debuggera i ustaw punkt przerwania na każdym poleceniu return. – Marvo

+0

Może dlatego dobrą praktyką jest generowanie jednego zwrotu za funkcję ... – m4573r

+0

@Marvo To zadziała. Mogę przejść do trybu debugowania i uruchomić linię po linii. Nie chciałbym umieszczać pułapek na 150 zwrotach, które ma ta równa funkcja. Dzięki. –

Odpowiedz

3

Nie, ale bardziej zrozumiały i przyjazny dla debugowania kod może być związany z boolowską zmienną lokalną, która reprezentuje wynik.

następnie można zobaczyć za pomocą debuggera, który przydzielił mu czas i zwracaną wartość przed zwróceniem.

+1

Czy debugger również zatrzymuje się podczas uzyskiwania dostępu do zmiennej, jeśli umieściłem punkt przerwania w deklaracji zmiennej? Będę musiał to wypróbować. –

+1

Nie zatrzymywał się przy każdym dostępie, ale musiałbyś przypisać zmienną wartość false zamiast zwracania i obsłużyć wartość logiczną na końcu. Możesz przypisać punkty przerwania w każdym miejscu, w którym przypisujesz zmienną do wartości false – Ron

2

Użyj punktów przerwania w trybie debugowania.