• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Jak wykonuje się ta linijka kodu... + typy int/long.

Object Storage Arubacloud
0 głosów
167 wizyt
pytanie zadane 6 października 2017 w Android, Swift, Symbian przez Kubs Mądrala (5,190 p.)
edycja 6 października 2017 przez Kubs

Witajcie,

Ta linijka kodu

Workout workout = Workout.workouts[(int) workoutId];

pobiera dane stąd

 public static final Workout [] workouts = {

            new Workout("Rozciąganie kończyn"........

}

A oto cały kod Fragmentu z tą pierwszą linijką kodu powyżej   ( linia 25 ) 

 

public class WorkoutDetailFragment extends Fragment {

    private long workoutId;


    public WorkoutDetailFragment() {
        // Required empty public constructor
    }


    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        return inflater.inflate(R.layout.fragment_workout_detail, container, false);
    }


    @Override
    public void onStart(){
        super.onStart();
        View view = getView();
        if (view != null){
            TextView title = (TextView) view.findViewById(R.id.textTitle);
            Workout workout = Workout.workouts[(int) workoutId];
        }
    }
    public void setWorkout(long id) {
        this.workoutId=id;
    }

}

 

Pytania:

1. Jaki dokładnie jest etap wykonywania tego kodu

Workout workout = Workout.workouts[(int) workoutId];

 

2. Dlaczego użyto int skoro docelowo zapisywane dane są w zmiennej typu long ( początek klasy w kodzie powyżej)

private long workoutId;

 

 

 

1 odpowiedź

0 głosów
odpowiedź 6 października 2017 przez adas94 Nałogowiec (29,200 p.)

Workout workout = Workout.workouts[(int) workoutId];

Do zmiennej typu Workout jest przypisywany obiekt typu Workout z statycznej tablicy. W dużym skrócie w klasie Workout istnieje statyczna tablica, która zawiera kolekcję 'workoutow' i ten kod powyżej przypisuje do zmiennej workout jeden z obiektów jaki ta tablica zawiera. 

private long workoutId;

Można użyć(rzutować na) int ponieważ int jest niejako podzbiorem long (w całości mieści się w przedziale long). A dlaczego go użyto można tylko zgadywać. :) (Ewentualnie z racji tego jak tablica jest zdefiniowana [przydałaby się cała klasa Workout do wglądu],nie chciała  ona przyjąć longa z jakiegoś powodu i była potrzeba rzutowania, musiałbym to sprawdzić)

 

komentarz 6 października 2017 przez Kubs Mądrala (5,190 p.)
Dziekuje serdecznie. Uzupelnie ten kod i podesli Ci do dokladniejszej analizy.

Pozdrawiam.

Podobne pytania

0 głosów
2 odpowiedzi 174 wizyt
pytanie zadane 28 sierpnia 2023 w Systemy operacyjne, programy przez Niepokonana7999 Bywalec (2,270 p.)
0 głosów
4 odpowiedzi 4,847 wizyt
pytanie zadane 8 lipca 2015 w C i C++ przez k222 Nałogowiec (30,150 p.)
0 głosów
0 odpowiedzi 297 wizyt
pytanie zadane 27 października 2017 w Android, Swift, Symbian przez Kubs Mądrala (5,190 p.)

92,576 zapytań

141,426 odpowiedzi

319,651 komentarzy

61,961 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...