Privremena ključna riječ u Javi

1. Uvod

U ovom ćemo članku prvo razumjeti prolazan ključnu riječ, a zatim ćemo njezino ponašanje vidjeti na primjerima.

2. Korištenje prolazan

Prvo da shvatimo serializaciju prije nego što pređemo na prolazan kao što se koristi u kontekstu serializacije.

Serijalizacija je postupak pretvaranja objekta u bajtni tok, a deserializacija je suprotna od njega.

Kad bilo koju varijablu označimo kao privremeni, tada ta varijabla nije serializirana. Stoga postupak serializacije zanemaruje izvornu vrijednost varijabli i sprema zadane vrijednosti za taj tip podataka.

The prolazan ključna riječ korisna je u nekoliko scenarija:

  • Možemo ga koristiti za izvedena polja
  • Korisno je za polja koja ne predstavljaju stanje objekta
  • Koristimo ga za bilo koje reference koje se ne mogu serirati

3. Primjer

Da bismo ga vidjeli na djelu, prvo stvorimo a Knjiga klasa čiji bismo objekt željeli serializirati:

javna klasa Book implementira Serializable {private static final long serialVersionUID = -2936687026040726549L; private String bookName; privatni prijelazni opis niza; privatne privremene int kopije; // geteri i postavljači}

Evo, označili smo opis i kopije kao prolazan polja.

Nakon stvaranja klase, stvorit ćemo objekt ove klase:

Knjiga knjiga = nova Knjiga (); book.setBookName ("Java referenca"); book.setDescription ("neće biti spremljeno"); book.setCopies (25);

Sada ćemo objekt serializirati u datoteku:

javna statička void serialize (knjiga knjiga) baca iznimku {FileOutputStream file = new FileOutputStream (fileName); ObjectOutputStream out = novi ObjectOutputStream (datoteka); out.writeObject (knjiga); out.close (); file.close (); }

Deserializirajmo objekt sada iz datoteke:

javna statička knjiga deserializira () baca izuzetak {FileInputStream file = new FileInputStream (fileName); ObjectInputStream u = novi ObjectInputStream (datoteka); Knjiga knjiga = (Knjiga) u.readObject (); in.close (); file.close (); knjiga povratka; }

Na kraju ćemo provjeriti vrijednosti knjiga objekt:

assertEquals ("Java referenca", book.getBookName ()); assertNull (book.getDescription ()); assertEquals (0, book.getCopies ());

Ovdje to vidimo bookName je pravilno ustrajalo. S druge strane, kopije polje ima vrijednost 0 i opis je null - zadane vrijednosti za njihove odgovarajuće tipove podataka - umjesto izvornih vrijednosti.

4. Ponašanje sa konačni

Sada ćemo vidjeti poseban slučaj u kojem ćemo koristiti prolazan s konačni ključna riječ. Za to ćemo prvo dodati a završni prijelazni element u našem Knjiga razreda, a zatim stvorite prazno Knjiga objekt:

javna klasa Book implementira Serializable {// postojeća polja private final transient String bookCategory = "Fiction"; // geteri i postavljači}
Knjiga knjiga = nova Knjiga ();

Kad provjerimo vrijednosti nakon deserializacije, primijetit ćemo to prolazan za ovo polje je zanemareno, a izvorna vrijednost je zadržana:

assertEquals ("Beletristika", book.getBookCategory ());

5. Zaključak

U ovom smo članku vidjeli upotrebu prolazan ključna riječ i njezino ponašanje u serializaciji i deserializaciji. Također smo vidjeli njegovo različito ponašanje kod konačni ključna riječ.

Kao i uvijek, sav je kôd dostupan na GitHub-u.


$config[zx-auto] not found$config[zx-overlay] not found