Luotausfragmentin tietoalkiot

Fragmentin tietoalkiot ovat tietoalkioiden nimiä ja tyyppejä, joihin fragmentin lähdekoodi voi viitata.

Tietoalkioiden määritys on valinnaista. Fragmentti voi sisältää useita tietoalkioita, mutta kukin tyyppi voi esiintyä vain kerran.

Tietoalkioon kuuluvat seuraavat ominaisuudet:
Ominaisuus Kuvaus
Tietotyyppi Pakollinen. Käytettävissä olevat tyypit on lueteltu seuraavassa taulukossa.
Nimi Pakollinen. Kelvollinen Java-muuttujan nimi on määritettävä. Luotausfragmentin lähdekoodi käyttää tätä nimeä viitatessaan tietoihin.
Seuraavassa taulukossa on lueteltu ja kuvattu Probekit-muokkausohjelmassa käytettävissä olevat tietotyypit:
Tietotyyppi type Kuvaus
className String

Metodiluotauksissa luodatun metodin luokan nimi, myös paketin nimi, sisäisessä muodossa. Callsite-luotauksissa puolestaan kutsutun metodin luokan nimi.

Esimerkki: org/eclipse/tptp/SomeClass

methodName String

Metodiluotauksissa luodatun metodin metodinimi, sisäisessä muodossa. Callsite-luotauksissa puolestaan kutsutun metodin metodinimi.

Konstruktoreilla on metodin nimi <init>, staattisilla luokan aloitustoiminnoilla <clinit>.

methodSig String

Metodin argumentti ja palautuslajin allekirjoitus sisäisessä muodossa. Ei kelpaa staticInitializer-fragmenteissa.

Esimerkki: (Ljava/lang/String;)I

thisObject Object

Luodatulle metodille välitetty this-objekti (esimerkiksi ilmentymän metodit). Ei kelpaa staticInitializer-fragmenteissa.

thisObject on tyhjä staattisissa metodeissa, konstruktoreihin käytetyissä entry-fragmenteissa ja konstruktoreihin käytetyissä exit-fragmenteissa, jos konstruktori aiheuttaa poikkeuksen.

args Object[]

Objektiviitteiden taulukko, joka kuvaa luodatun metodin argumentteja. Taulukossa on yksi elementti metodin kutakin argumenttia kohden (this-argumenttia ei lasketa mukaan). Argumentit, jotka ovat alkeistyyppejä, on sidottu asianmukaisen viitelajin väliaikaisiin objekteihin, esimerkiksi Integer, jos kyseessä on int. Jos metodiin ei voi määrittää argumentteja, Object[]-taulukon koko on nolla.

Huomaa, että muiden kuin staattisten sisäisten luokkien konstruktoreilla on yksi piilotettu argumentti kutakin "sisäistä" tasoa kohden, joten argumenttitaulukko sisältää useampia elementtejä kuin lähdekoodissa on näkyvissä. Ei kelpaa staticInitializer-fragmenteissa.

returnedObject Object Viite palautettavaan objektiin. Tämä tyyppi on käytettävissä vain exit- ja afterCall-fragmenteissa. Jos luodatun metodin palautuksen laji on alkeistyyppi, palautettu arvo on sidottu asianmukaisen viitelajin tilapäiseen objektiin. Jos metodissa on void-määritys (se ei palauta arvoa) tai poistuminen aiheutuu poikkeuksesta, returnedObject-arvo on tyhjä.
exceptionObject Throwable Viite ilmenneeseen poikkeusobjektiin. Tämä tyyppi on käytettävissä vain catch- ja exit-fragmenteissa. Jos metodi poistuu normaalisti, exceptionObject on tyhjä.
isFinally boolean Määrite, joka osoittaa, onko fragmentti kutsuttu finally-lauseesta (true) vai catch-lauseesta (false). Käytettävissä vain catch-fragmenteissa.
staticField (vaihtelee) Objekti, johon staattinen kenttä viittaa. Sen tyyppi on sama kuin staticField-objektissa ilmoitettu. Tämä on kelvollinen vain, jos luotaus ilmoittaa arvon staticField. (Katso kohta staticField- ja staticInitializer-luotausesimerkki.) Ei kelpaa callsite-luotauksissa.
classSourceFile String Luokkatiedoston vianmääritysominaisuuksista käytettävissä olevat lähdetiedoston nimitiedot. Jos lähdetietoja ei ole, classSourceFile on tyhjä. Javassa arvo on yleensä pelkkä tiedoston nimi ilman polkutietoja. Ei kelpaa callsite-luotauksissa.
methodNames String

Koodattu luettelo metodien nimistä ja allekirjoituksista. Tämän luettelon metodien järjestys on sama kuin metodien järjestys kohteessa methodLineTables ja sama kuin methodNumber-tietoalkion kuvaama järjestys. Luettelossa ei ole sellaisten metodien nimiä, jotka Probekit on lisännyt luokkaan.

methodNames-merkkijono koostuu yhdestä tai useasta metodin nimestä ja allekirjoituksesta, joita erottaa plusmerkki (+). Metodin allekirjoitukset ovat sisäisessä Java-muodossa. Esimerkki: Luokalla, jolla on kaksi metodia, oletusarvoinen konstruktori ja metodin ajo (run), joka ottaa merkkijonon (String) ja palauttaa kokonaisluvun (int), on seuraava methodNames-merkkijono: <init>()V+run(Ljava/lang/String;)I

Ei kelpaa callsite-luotauksissa.

methodLineTables String Koodattu rivinumeroiden luettelo, joka vastaa luokan kutakin toteuttavaa koodin yksikköä. Luettelo ei sisällä toteutettavia yksiköitä, jotka Probekit on lisännyt luokkaan. Selitys koodauksesta on methodLineTables-tietomerkkijonomuotoa käsittelevässä kohdassa. Ei kelpaa callsite-luotauksissa.
methodNumber Integer Sen menetelmän hakemistonumero methodNames-taulukossa, johon luotausfragmentti on lisätty. Ei kelpaa callsite-luotauksissa tai staticInitializer-fragmenteissa.
executableUnitNumber Integer Sen toteutettavan yksikön numero, johon luotausfragmentti on lisätty. Tämä tietotyyppi kelpaa vain executableUnit- ja catch-luotausfragmenteissa. Jos metodissa ei ole lähdekooditietoja, siinä näkyy yksi toteutettava yksikkö, jonka numero on nolla.
Esimerkki:

Voit kirjoittaa luotausfragmentin tietoalkiot valitsemalla rakenneruudussa Fragmentti-vaihtoehdon ja lisäämällä ja määrittämällä sitten tietoalkiot muokkausruudussa Lisää- ja Määritä-vaihtoehtojen avulla.

Probekit-muokkausohjelma, jossa näkyy, miltä fragmentin tietoalkiot näyttävät

Aiheeseen liittyviä viitteitä
Probe fragment Java source code
Luotausfragmenttien tyypit