рдЗрд╕ рдкрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреА рддрд▓рд╛рд╢ рдореЗрдВ, рдХреНрдпреЛрдВрдХрд┐ рдорд╛рдирдХ libs рдЕрдм рдЕрдкрдиреЗ рдирдП рддрд░реАрдХреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВред
рддреЛ рд╡рд░реНрддрдорд╛рди рд╡реЛрдЯ 2:+1: рдФрд░ 7:-1: рд╣реИрдВред рдЕрдЧрд░ рдЕрдЧрд▓реЗ 24 рдШрдВрдЯреЛрдВ рдореЗрдВ рдХреЛрдИ рдЕрддрд┐рд░рд┐рдХреНрдд рд╡реЛрдЯ рдпрд╛ рдЯрд┐рдкреНрдкрдгреА рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ, рддреЛ рдЗрд╕реЗ рдкрд░рд┐рдгрд╛рдо рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдХрд▓рд╣ рдЭрд╛рдБрдХрддрд╛ рд╣реИ рдорди рдПрдХ рдмрд╛рд░ рджреЗрдЦ рд▓реЗрддрд╛ рд╣реИред
рдореИрдВ рдмрджрд▓рд╛рд╡ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдкрд░рдВрдкрд░рд╛рдПрдВ рд▓рд┐рдЦреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдП рдХреНрдпреЛрдВрдХрд┐ рдХрднреА-рдХрднреА get
рдЙрдкрд╕рд░реНрдЧ рдХреА рдЬрд░реВрд░рдд рд╣реЛрддреА рд╣реИред
рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ рдпрд╣ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ рдХрд┐ JDK рдЗрд╕ рддрдХ рдХреИрд╕реЗ рдкрд╣реБрдВрдЪрддрд╛ рд╣реИред
рдЬрдм рдХреЛрдИ рд╕реЗрдЯрд░ рд╣реЛрддрд╛ рд╣реИ рддреЛ рдХреНрдпрд╛ jdk рдореЗрдВ get
рдЙрдкрд╕рд░реНрдЧ рд╣реЛрддрд╛ рд╣реИ? рд╣рдореЗрдВ рдЗрдиреНрд╣реЗрдВ рддрдм рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ рдЬрдм рдХреЛрдИ рд╕реЗрдЯрд░ рдмрдирд╛рдо рди рд╣реЛред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд░рд┐рдХреЙрд░реНрдб рдЧреЗрдЯреНрдЯрд░ рд╡рд┐рдзрд┐рдпреЛрдВ рдореЗрдВ get
рдЙрдкрд╕рд░реНрдЧ рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЙрдирдХреЗ рдкрд╛рд╕ рд╕реЗрдЯрд░реНрд╕ рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВ рдФрд░ рд╕рдВрднрд╛рд╡рд┐рдд рдирд╛рдо рднреНрд░рдо рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВред
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдХреБрдЫ рдирдП рдЬреЗрдбреАрдХреЗ рдЧреЗрдЯрд░реНрд╕ рдореЗрдВ get
рдЙрдкрд╕рд░реНрдЧ рд╣реЛрддреЗ рд╣реИрдВ рдЬрдмрдХрд┐ рдЕрдиреНрдп рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рдПрдХ рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рдЙрджрд╛рд╣рд░рдг java.lang.invoke.CallSite
рдореЗрдВ рд╣реИ, рдЬрд┐рд╕реЗ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рд╣рд╛рд▓ рд╣реА рдореЗрдВ jdk 7 рдореЗрдВ рдкреЗрд╢ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдХреНрд╕рд░ рдЗрдирд╡реЛрдХрдбрд╛рдпрдирд╛рдорд┐рдХ рдмрд╛рдЗрдЯрдХреЛрдб рдЗрдВрд╕реНрдЯреНрд░рдХреНрд╢рди рдХреА рдмреВрдЯрд╕реНрдЯреНрд░реИрдк рд╡рд┐рдзрд┐ рд╡рд┐рд╢реЗрд╖рддрд╛ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд╣рд╛рдВ рдПрдХ MethodType type()
рдЧреЗрдЯреНрдЯрд░ рдФрд░ рдПрдХ MethodHandle getTarget()
рдЧреЗрдЯреНрдЯрд░ рд╣реЛрддрд╛ рд╣реИ ( рдПрдХ рдкреНрд░рдХрд╛рд░ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рд╣реИ рдЬрдмрдХрд┐ рд▓рдХреНрд╖реНрдп рдПрдХ рдкрд░рд┐рд╡рд░реНрддрдирд╢реАрд▓ рд╣реИ; рдПрдХ setTarget(MethodHandle)
рднреА рд╣реИ)ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХреБрдЫ рдЕрдиреНрдп рдирдП рдПрдкрд┐рд╕ get
рдЙрдкрд╕рд░реНрдЧ рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ рдХрд┐ рдЬрд╛рд╡рд╛ 9 рд╕реЗ Class.getModule
ред
рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛтАЛтАЛрд╣реИ рдХрд┐ рдЬреЗрдбреАрдХреЗ рдХрд╛ рдорд╛рдирдХ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рд╣реИ, рдХреЛрдИ рдЙрдкрд╕рд░реНрдЧ рдирд╣реАрдВ рд╣реИ, рдЬрдмрдХрд┐ рдЙрддреНрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рдЙрдкрд╕рд░реНрдЧ рд╣реИ - рдпрд╣ рдХреБрдЫ рд╣рдж рддрдХ рдирдП рд░рд┐рдХреЙрд░реНрдб рдХреЗ рд╕рд╛рде рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдЧреЗрдЯрд░реНрд╕ рдпрд╛ рд╕реЗрдЯрд░реНрд╕ рдирд╣реАрдВ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЙрдирдХрд╛ рдбреЗрдЯрд╛ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рд╣реИред
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛтАЛтАЛрд╣реИ рдХрд┐ рдЬреЗрдбреАрдХреЗ рдХрд╛ рдорд╛рдирдХ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рд╣реИ, рдХреЛрдИ рдЙрдкрд╕рд░реНрдЧ рдирд╣реАрдВ рд╣реИ, рдЬрдмрдХрд┐ рдЙрддреНрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рдЙрдкрд╕рд░реНрдЧ рд╣реИ - рдпрд╣ рдХреБрдЫ рд╣рдж рддрдХ рдирдП рд░рд┐рдХреЙрд░реНрдб рдХреЗ рд╕рд╛рде рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдЧреЗрдЯрд░реНрд╕ рдпрд╛ рд╕реЗрдЯрд░реНрд╕ рдирд╣реАрдВ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЙрдирдХрд╛ рдбреЗрдЯрд╛ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рд╣реИред