Dataelementer i probefragment

Et fragments dataelementer er navne og typer på dataelementer, som fragmentets kildekode kan referere til.

Det er valgfrit, om du vil angive dataelementer. Et fragment kan indeholde flere dataelementer, men hver dataelementtype kan kun forekomme én gang.

Et dataelement rummer følgende egenskaber:
Egenskab Beskrivelse
Datatype Påkrævet. De tilgængelige typer er angivet i nedenstående tabel.
Navn Påkrævet. Navnet skal være et gyldigt navn på en Java-variabel. Probefragmentets kildekode vil bruge dette navn til at referere til de angivne data.
Følgende tabel indeholder en liste over og en beskrivelse af de datatyper, der er tilgængelige via Probekit Editor:
Datatype Type Beskrivelse
className String

Ved metodeprober er det klassenavnet på den probede metode inkl. pakkenavnet i internt format. Ved kaldstedprober er det klassenavnet på den kaldte metode.

Eksempel: org/eclipse/tptp/SomeClass

methodName String

Ved metodeprober er det metodenavnet på den probede metode i internt format. Ved kaldstedprober er det metodenavnet på den kaldte metode.

Konstruktører har metodenavnet <init>, og initialiseringsfunktioner for statiske klasser har metodenavnet <clinit>.

methodSig String

Metodeargumentet og returtypesignaturen i internt format. Ikke gyldigt i forbindelse med staticInitializer-fragmenter.

Eksempel: (Ljava/lang/String;)I

thisObject Object

Objektet this (ved forekomstmetoder), som blev sendt til den probede metode. Ikke gyldigt i forbindelse med staticInitializer-fragmenter.

thisObject er null ved statiske metoder, ved entry-fragmenter, der anvendes på konstruktører, og ved exit-fragmenter, som anvendes på konstruktører, når konstruktøren sender en meddelelse om en undtagelse.

args Object[]

Et array af object-referencer, der repræsenterer argumenterne for den probede metode. Der er ét element i dette array for hvert argument til metoden (her er argumentet this ikke talt med). Primitive argumenttyper indrammes i midlertidige objekter med relevant referencetype, for eksempel: Integer for int. Hvis metoden ikke tager argumenter, er størrelsen på arrayet Object[] nul.

Bemærk, at konstruktører af ikke-statiske indre klasser har ét skjult argument for hvert "indre" niveau, så argument-arrayet kommer til at indeholde flere elementer, end det fremgår af kildekoden. Ikke gyldigt i forbindelse med staticInitializer-fragmenter.

returnedObject Object En reference til det objekt, der returneres. Denne type er kun tilgængelig i exit- og afterCall-fragmenter. Hvis returtypen for den probede metode er en primitiv type, bindes den returnerede værdi i et temporært objekt med den relevante referencetype. Hvis metoden er void (dvs. der returneres ikke nogen værdi), eller den afsluttes med en undtagelse, vil returnedObject være null.
exceptionObject Throwable En reference til det undtagelsesobjekt, der returneres. Denne type er kun tilgængelig i forbindelse med catch- og exit-fragmenter. Hvis metoden afsluttes normalt, vil exceptionObject være null.
isFinally boolean Et flag angiver, om fragmentet blev kaldt fra et finally-udtryk (sandt) eller fra et catch-udtryk (falsk). Kun gyldigt i catch-fragmenter.
staticField (varierer) Det objekt, det statiske felt refererer til. Objektets type er den samme, som blev erklæret i objektet staticField. Dette er kun gyldigt, hvis proben erklærer et staticField. Se Eksempel på en staticField- og en staticInitializer-probe. Ikke gyldig i forbindelse med kaldstedprober.
classSourceFile String Oplysninger om kildefilnavnet, der er tilgængelige fra klassefilens fejlfindingsattributter. Hvis der ikke er nogen kildeoplysninger, vil classSourceFile være null. I forbindelse med Java er værdien ofte bare filnavnet uden stioplysninger. Ikke gyldig i forbindelse med kaldstedprober.
methodNames String

En kodet liste med metodenavne og signaturer. Metodernes rækkefølge i denne liste er den samme som metoderækkefølgen i methodLineTables og som den rækkefølge, der afspejles af dataelementet methodNumber. Listen indeholder ikke navnene på metoder, der blev indsat i klassen af Probekit.

Strengen methodNames består af ét eller flere metodenavne og en eller flere metodesignaturer, adskilt af et plustegn (+). Metodesignaturerne er i internt Java-format. Eksempel: En klasse med to metoder, en standardkonstruktør, metoden run, som tager en streng og returnerer int, har denne methodNames-streng: <init>()V+run(Ljava/lang/String;)I

Ikke gyldig i forbindelse med kaldstedprober.

methodLineTables String En kodet liste over linjenumre, som svarer til alle eksekvérbare kodeenheder i klassen. Listen omfatter ikke de eksekvérbare enheder, der blev indsat i klassen af Probekit. Du kan finde en forklaring på kodningen under Strengformatet methodLineTables. Ikke gyldig i forbindelse med kaldstedprober.
methodNumber Integer Indeksnummeret i tabellen methodNames for den metode, som probefragmentet blev indsat i. Ikke gyldigt i forbindelse med kaldstedprober eller staticInitializer-fragmenter.
executableUnitNumber Integer Nummeret på den eksekvérbare enhed, som probefragmentet blev indsat i. Denne datatype er kun gyldig i forbindelse med probefragmenterne executableUnit og catch. Hvis metoden ikke har kildelinjeoplysninger, ser den ud til at have en enkelt eksekvérbar enhed med nummeret nul.
Eksempel:

Hvis du vil angive dataelementer i probefragmenter, skal du vælge Fragment i delvinduet med træstrukturen, derefter bruge Tilføj og Redigér, når du skal indtaste og definere dataelementerne i redigeringsdelvinduet.

I Probekit Editor vises, hvordan et fragments Java-kildekode ser ud.

Relateret reference
Javakildekode til probefragment
Probefragmenttyper