This is not an authoritative answer, but every time I made such a correction, I copied all the classes (external and internal classes), i.e.
Outer.class Outer$1.class // These indexes might change ... Outer$2.class // ... between compilation runs Outer$Inner.class // This name should never change
When I did not, late-loading side effects usually occurred. In my opinion, this most often happens due to anonymous inner classes that do not always regenerate the same βanonymous class indexβ (as in $1 , $2 , etc.), depending on their order in the .java file .
So, of course, since this type of patch is a pretty hooligan technique, I always copied all the classes.
source share