1
svar
79
visningar
beerger behöver inte mer hjälp
Vilken kodrad anropas metoden ifrån?
public static void testLine()
{
System.out.println(getLine());
}
public static int getLine()
{
return Thread.currentThread().getStackTrace()[1].getLineNumber();
}
Hej!
Jag försöker skriva en funktion som ska returnera från vilken rad denna funktion anropas ifrån.
T.ex. om vi säger att
System.out.println(getLine());
är på rad 10, så vill jag att getLine() ska returnera 10. Just nu returnerar den vilken rad
return Thread.currentThread().getStackTrace()[1].getLineNumber();
befinner sig på.
Någon som vet hur man kan göra det?
public static int getLine()
{
return Thread.currentThread().getStackTrace()[3].getLineNumber();
}
Löste det genom att öka indexet i stacken för hittade att:
The last element of the array represents the bottom of the stack,
which is the least recent method invocation in the sequence.
Vilket gör att jag kommer åt information om de tidigare anropen, då de är placera längre ifrån "botten" av stacken.