Kategorie szkoleń | Egzaminy | Kontakt
  • 2
  • 9
  • 150

W jaki sposób w pewnych okolicznościach ustawić atrybuty wybranej klasy na określoną wartość, bez konieczności powielania kodu?

Przykładowo jak w metodzie onDestroy dla Activity wołanej podczas niszczenia okna ustawić wszystkie atrybuty klasy (o różnych zakresach widoczności) na wartość NULL?

Natalia_Ogiegło
  • Zapytał
  • @ Natalia_Ogiegło | 10.05.2014
    • 2
    • 0
    • 2

Odpowiedzi (2)

  • 4

Pytanie jest dość ogólnikowe i nie jestem pewien, czy dobrze zrozumiałem problem. Jeśli nie, to proszę o podanie przykładowego kodu.

Wracając do problemu - sposobem na niepowielanie kodu jest zawarcie go w metodzie. Wystarczy zdefiniować w klasie z atrybutami publiczną metodę (będzie miała dostęp do wszystkich jej atrybutów bez względu na ich zasięg) i wywołać ją z wielu miejsc.

  • Odpowiedział
  • @ | 13.05.2014
  • TRENER MODERATOR ALTKOM AKADEMII
  • 3

Możesz wykorzystać metody z Commons BeanUtils, np. dzięki klasie PropertyUtils możesz się przeliterować po wszystkich polach i ustawić je na NULL. Możesz też wykorzystać mechanizmy refleksji (w tym przypadku masz np. metodę Field.setAccessible(boolean), dzięki której możesz się dobrać do pól private). 

Przemysław_Kromołowski
  • Odpowiedział
  • @ Przemysław_Kromołowski | 27.05.2014
    • 1
    • 1
    • 3