Z 'this', a bez 'this'

0

Cześć. Zaciekawiło mnie pewne zjawisko, z którym wcześniej się nie spotkałem. Otóż mając niestatyczne pole pewnej klasy chciałem w pewnej metodzie inicjalizować ją lub nie w zależności czy coś już do tej referencji było przypisane. Taka referencja przed przypisaniem ma wartość null. Jednak w owej metodzie przy sprawdzeniu czy w tej referencji coś już siedzi, zapomniałem odwołać się w następujący sposób:

if(this.mojePole!=null){...}

a zamiast tego wyszło

if(mojePole!=null){...}

Nie zauważając wcześniej błędu, zacząłem zachodzić w głowę jak przed jakąkolwiek inicjalizacją mój warunek może zwracać prawdę. Gdy jednak zobaczyłem, że zgubiłem 'this', program działa, jednak nadal zastanawiam się do czego odnoszę się bez 'this'. Dlaczego wartość jest inna niż null? Nie mam pojęcia do czego się w ten sposób odnoszę. Myślałem do tej pory, że 'this' w tym wypadku jest opcjonalne.

1

Zrób Ctrl+F i zobacz, czy coś jeszcze w kodzie ma taką nazwę.

0

@twonek nie ma.
Edit: Jest.

private Team team;
public void setTeam(Team team) throws Exception{ // Tu błąd. Zapomniałem o argumencie.
        if(this.team != null) { // O to konkretnie mi chodzi. Dla tego warunku działa. Dla if(team!=null) nie.
            throw new Exception(){
                @Override
                public String getMessage() {
                    return "Employee already in team";
                }
            };
        }
        else {
            this.team = team;
        }
    }
2

faktycznie, oprócz argumentu -,-

1 użytkowników online, w tym zalogowanych: 0, gości: 1