When shifting through java call graph generated by libraries like DependencyFinder and java-callgraph, I found out that java compiler generate names for anonymous functions, inner classes, etc.
I've found out the meaning of a couple of them (please correct if I'm wrong):
org.example.Bar$Foorefers toFoo, which is an inner class oforg.example.Bar.org.example.Bar$1refers to an anonymous class declared inside one of the methods oforg.example.Bar.org.example.Bar.lambda$spam$1()refers to a lambda declared inside oforg.example.Bar.spam()method.
However, I also found:
org.example.Bar$$Lambda$2.args$1org.example.Bar$$Lambda$2.call()org.example.Bar$$Lambda$7.lambdaFactory$()org.example.Bar$$Lambda$7.get$Lambda()
What does the four name above refer to? What does double dollar ($$) mean?