Tässä esimerkissä esitellään staticField-tietoalkion ja staticInitializer-luotausfragmentin käyttöä.
Tässä esimerkissä luotaus seuraa, milloin luokan ilmentymiä luodaan. Jos ilmentymä luodaan yli sekunnin
myöhemmin kuin saman luokan edellinen ilmentymä, luotaus kirjoittaa lokisanoman.
Luotauksen toiminta on kuvattu seuraavassa:
- Staattisen kentän määrityksen avulla luotaus luo jokaiseen luodattuun luokkaan staattisen kentän, jonka tyyppi
on Date. Staattinen kenttä alustetaan kutsulla new Date();.
- staticInitializer-fragmentissa luotaus määrittää luodatun
luokan Date-ilmentymän "nolla-aikaan" (tammikuu 1970), kun se ladataan.
- entry-fragmentissa luotaus tarkistaa, milloin edellinen
päivitys on toteutettu, ja lähettää raportin, jos päivityksestä on kulunut yli
sekunti. (Kohdesääntöjen takia entry-fragmentti ajetaan vain konstruktoreissa.)
- Lopuksi luotaus päivittää Date-ilmentymän arvoksi "nyt."
Luotaus luo uuden staattisen kentän jokaiseen luodattuun luokkaan staattisen kentän määrityksen avulla. Sen sijaan Date-kentän esittely luokan vaikutusalueen fragmentin
avulla tuottaa yhden Date-ilmentymän, joka näkyy muodostetussa luokassa, jossa
luotausfragmentit ovat, siitä huolimatta, moneenko luokkaan luotausta
käytetään. Voit tehdä tämän, jos haluat jäljittää minkä tahansa luodatun luokan ilmentymien
luonnin aikaviivettä sen sijaan, että jäljittäisit kunkin luodatun luokan ilmentymien luontien välistä viivettä.
Tämä luotaus on määritetty Probekit-muokkausohjelmassa seuraavien merkintöjen avulla:
- Staattisen kentän tarkka Java-tyyppi (napsauta hiiren kakkospainikkeella Luotaus-vaihtoehtoa
rakenne-esityksessä, valitse sitten ja anna tämä arvo):
java.util.Date
- Kohde (voit antaa nämä arvot valitsemalla rakenneruudussa Kohde-vaihtoehdon ja
valitsemalla sitten Muokkaa):
- Kohteen tyyppi: include
- Paketti: com.sample* (Käytä
tässä oikean paketin nimeä.)
- Luokka: *
- Metodi: <init>
- Metodin allekirjoitus: *
- Kohde (voit antaa nämä arvot valitsemalla muokkausruudussa Lisää ja valitsemalla
sitten Muokkaa):
- Kohteen tyyppi: exclude
- Paketti: *
- Luokka: *
- Metodi: *
- Metodin allekirjoitus: *
- Fragmentti (anna nämä arvot valitsemalla rakenneruudussa Fragmentti-vaihtoehto):