I have a stacktrace for an app that includes the following nugget:
com.google.inject.internal.util.$ComputationException
What does the $ in front of the class name indicate?
In the Java internals, the $
character is considered a valid identifier character just like letters or numbers. However, it's usually used internally by the compiler when generating things like inner classes.
From the Java Language Specification:
The Java letters include uppercase and lowercase ASCII Latin letters
A-Z
(\u0041-\u005a
), anda-z
(\u0061-\u007a
), and, for historical reasons, the ASCII underscore (_
, or\u005f
) and dollar sign ($
, or\u0024
). The$
character should be used only in mechanically generated source code or, rarely, to access preexisting names on legacy systems.
It means that ComputationException
is contained within another class or otherwise not publicly visible.
See http://www.retrologic.com/innerclasses.doc7.html .
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With