问题
There are some constructs that don't have equivalents in java. Examples would be
- named parameters
- instance private members
Where/How does Scala store the information necessary for this stuff (some kind of flag in the first case, the parameter names in the second case?
If I get it right this has to get stored in the byte code, since it works even if I just have a compiled library without the source code!?
回答1:
This information is captured in an annotation named ScalaSig
in the class file (see this answer for an example).
You can view the (not very human-friendly) annotation with javap -verbose
, or parse it using an internal API, but in general neither should be necessary.
来源:https://stackoverflow.com/questions/16456931/where-does-scala-store-information-that-cannot-be-represented-in-java