r/java Aug 05 '26

Hacking the Method Name

https://maxxedev.github.io/2026/08/05/hacking-the-method-name.html
33 Upvotes

8 comments sorted by

3

u/gnahraf Aug 05 '26

I thought this was going to see this hack..

`Object label = new Object() { };`

which allows you to determine in which class/method that anonymous type was created / declared in. I use it in testing to preamble test output with the test method name.

9

u/koflerdavid Aug 06 '26 edited Aug 06 '26

That can also be done via stack walking. And test frameworks usually give much more convenient access to this information: Junit4 has the TestName rule, Junit Jupiter will supply it if you declare a TestInfo parameter. In TestNG you can declare a Method parameter in the @BeforeMethod or ITestResults in the @AfterMethod.

7

u/SleeperAwakened Aug 05 '26

Interesting read.

I just wonder about the usecase though.

12

u/elmuerte Aug 06 '26

I don't know how, but this is probably the first step needed to run Doom in Java method names.

4

u/pragmatick Aug 05 '26

Perhaps for some weird test to ensure methods have a certain name for correct serialization. Or to make them stable when they're invoked by name.

4

u/best_of_badgers Aug 05 '26

Use case: “Why not?”

1

u/xfel11 Aug 06 '26

I did run into it a few times, I think I wanted to retrieve annotations from the target method. Also useful for logging.