Well, this is the result of decompiled code, is there a way to bind numbers ( access$16 , access$17 , etc.) to the source variable or class? From what I see, the only way to do this manually is (that is, see what is referenced, where and suppose that since the class 'this' received the URL, then 'this' should be associated with the variable 'this' )?
access$x methods are created if you access private methods or variables from a nested class (or vice versa, or from one nested class to another). They are created by the compiler because the virtual machine does not allow direct access to private variables.
If the decompiler allows these method calls to remain in the restored source code for the used class, it should also allow the definitions of synthetic methods to remain in the restored source code for the used class. If so, look at the class that is the recipient of the method in question ( class1 in your case), there should be such a method ( access$17 ). In the code of this method, you can see which real method (or variable) is available here.
If the decompiler removed the synthetic methods, this is either an error or it can be configurable. It may also be that you need to pass all the classes at once, and then it can put the necessary methods / fields everywhere - see its documentation.
If you have classes before the method call point (and their superclasses, if any), you must have methods.
From the scanned fragment there should be the access$16 and access$17 class1 in class1 (or is class1 local variable class1 here?).
If this is not the case, your decompiler may have tried to be smarter than necessary. You could look at the output of javap class1 to see if methods exist, and javap -c class1 for the entire bytecode. Or use another decompiler.
source share