Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

[Pytanie] Co to jest "assert" i "transient"


Rekomendowane odpowiedzi

Opublikowano

assert to raczej tylko do debugowania, sprawdza czy to co mu podasz, jest prawdą, i jak nie... to wywala error, zwykle się tego raczej nie używa, tylko robi normalne, throw new RuntimeException("bo tak") czy inne wyjątki/kody.

Tyle co piszę, to asserta uzywałem z 2/3 razy, tylko po to by zobaczyć jak działa ;) A tak to jakoś nie widziałem potrzeby.

http://docs.oracle.com/javase/8/docs/technotes/guides/language/assert.html

Czyli jak widać często oznacza się go do wskazywania miejsc gdzie mamy pewność że nie istnieje taka możliwość by to się wykonało, a jak się wykona, to znaczy że coś się ostro spier... ;)

Pytanie, dlaczego ich używać? Cały myk polega na tym, że działają tylko jeśli są włączone, więc nadają się do testów.

 

 

transient oznacza że pole nie ma być serializowane, czasami dla wygody oznacza się też tym pola, nawet jak klasa nie jest przeznaczona do serializacji, by zaznaczyć że te pola, są takie eem, bardziej tymczasowe, np jakieś cache. (jak sama nazwa transient wskazuje, przemijający/przejściowy/czasowy, czyli dane których zapisywać nie ma sensu, bo są tylko pomocnicze, często obliczane na podstawie pozostałych)

A tak to jeśli klasa implementuje interfejs Serializable, to pola "transient" nie będą serializowane.

 

 

Mam nadzieję że rozumiesz :D Jak coś jeszcze to pytaj ;) ale odp dopiero jutro.

1438614356923701010629.png

 

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...