2013-05-16 29 views
5

Czy ktoś może wyjaśnić, jak działa ten fragment kodu ... Rzeczywisty kod sam w sobie nie ma znaczenia, jak to było z krótkiego samouczka na temat używania wzorca MVP na Androida.Czy to jest wewnętrzna klasa?

Moje główne pytanie brzmi: jak działa ta struktura kodu i czy jest to wewnętrzna klasa, rodzaj, czy może transakcja ... Nie widziałem takiej struktury kodu w Javie i chciałbym ją podjąć i uczyć się od niego, ponieważ wydaje się skuteczny i minimalny.

public void loadCustomer(int id) { 
    (mCustomerModel.load(id)) { 
     mCustomerView.setId(mCustomerModel.getId()); 
     mCustomerView.setFirstName(mCustomerModel.getFirstName()); 
     mCustomerView.setLastName(mCustomerModel.getLastName()); 
    } 
} 
+0

To więcej stylu organizacji, można doskonale pominąć nawiasy klamrowe. – Alex

+0

to trzy wywołania metody wewnątrz innego wywołania metody, które mnie myli ... wewnątrz zestawu nawiasów od pierwszego wywołania metody. Czy jestem głupi ... :-) – leeb898

+1

@ leeb898 no ';' after '(mCustomerModel.load (id))'? – assylias

Odpowiedz

-2

To jest proste, ale z pewnością wydaje się nieco nietypowe. Okrągłe nawiasy otaczające mCustomerModel.load (id) są zbędne, w tym przypadku nawiasy klamrowe wokół następnych trzech linii są również zbędne. W innym przypadku, jeśli zadeklarowano zmienną lokalną w tym bloku, jej zakres będzie ograniczony tylko do tego bloku. Poniższy kod jest równoważny:

public void loadCustomer(int id) { 
    mCustomerModel.load(id); 
    mCustomerView.setId(mCustomerModel.getId()); 
    mCustomerView.setFirstName(mCustomerModel.getFirstName()); 
    mCustomerView.setLastName(mCustomerModel.getLastName()); 

} 

EDYCJA: Pominięto zamiar, aby linia w nawiasach okrągłych była instrukcją if. W tym przypadku kod jest dość oczywisty po dodaniu słowa "jeśli".

+3

To się nie kompiluje (brakujące ';') – assylias

+0

Jeśli masz wrażenie, że źle zinterpretowałeś pytanie, możesz po prostu usunąć swoją odpowiedź (link pod odpowiedzią). – assylias

+0

@Monty Goodepuppee Rozumiem teraz, jeśli instrukcja If ma normalny sens i bez niej jest po prostu struktura organizacyjna wywołań metod. – leeb898

-3

EDIT: Nie powinny być oświadczenie if przed (mCustomerModel.load(id)), i to, co moja odpowiedź zakłada.

public void loadCustomer(int id) { 
    (mCustomerModel.load(id)) { 

mCustomerModel.load(id) prawdopodobnie sprawdza, czy identyfikator klienta jest ważny, a jeżeli tak, to przygotowuje dane klienta, aby uzyskać dostęp/modyfikacji.

 mCustomerView.setId(mCustomerModel.getId()); 

uzyskać identyfikator klienta i ustawić go w mCustomerView, który jest prawdopodobnie element GUI, który wyświetla dane.

 mCustomerView.setFirstName(mCustomerModel.getFirstName()); 
     mCustomerView.setLastName(mCustomerModel.getLastName()); 

zrobić to samo na imię i nazwisko klienta (wyświetlanie go w GUI)

} 
} 
+2

Nie ma instrukcji "if". – dlev

+0

@dlev, wow. jak to przegapiłem? – BLuFeNiX

+0

Aby być uczciwym, myślę, że tam * powinno * być stwierdzeniem "jeśli", a reszta twojego wyjaśnienia jest prawidłowa. – dlev

Powiązane problemy