рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ var рд╕реЗ рдмрджрд▓реЗрдВ: рдХреНрдпрд╛ рдЧрд▓рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ?

рдореИрдВ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдПрдХ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдЖрдпрд╛ рдерд╛ рдЬреЛ рдЬрд╛рд╡рд╛ 10 рдкреНрд░реЛрдЧреНрд░рд╛рдо рдореЗрдВ рд╡рд░реНрдЬрди рдХреЗ рд╕рд╛рде рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рдЬрдЧрд╣ рд░рдирдЯрд╛рдЗрдо рдкрд░ рдПрдХ рдЕрдкрд╡рд╛рдж рдлреЗрдВрдХрддрд╛ рд╣реИред рдореБрдЭреЗ рдЗрд╕ рдкреНрд░рднрд╛рд╡ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рдХрд┐рддрдиреЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рддрд░реАрдХреЛрдВ рдореЗрдВ рджрд┐рд▓рдЪрд╕реНрдкреА рдереА, рдФрд░ рдореИрдВрдиреЗ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рд╕рдореБрджрд╛рдп рдХреЛ рд╕рдВрдмреЛрдзрд┐рдд рдХрд┐рдпрд╛:



рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдЖрдк рд╡рд┐рднрд┐рдиреНрди рддрд░реАрдХреЛрдВ рд╕реЗ рдкреНрд░рднрд╛рд╡ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрджреНрдпрдкрд┐ рд╡реЗ рд╕рднреА рдереЛрдбрд╝реЗ рдЬрдЯрд┐рд▓ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЗрд╕ рддрд░рд╣ рдХреЗ рдХрд╛рд░реНрдп рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рд╛рде рднрд╛рд╖рд╛ рдХреА рд╡рд┐рднрд┐рдиреНрди рд╕реВрдХреНрд╖реНрдорддрд╛рдУрдВ рдХреЛ рдпрд╛рдж рдХрд░рдирд╛ рджрд┐рд▓рдЪрд╕реНрдк рд╣реИред рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рдХреНрдпрд╛ рддрд░реАрдХреЗ рдкрд╛рдП рдЧрдПред


рдкреНрд░рддрд┐рднрд╛рдЧрд┐рдпреЛрдВ


рдЬрд╡рд╛рдм рджреЗрдиреЗ рд╡рд╛рд▓реЛрдВ рдореЗрдВ рдХрдИ рдкреНрд░рд╕рд┐рджреНрдз рдФрд░ рдмрд╣реБрдд рд▓реЛрдЧ рдирд╣реАрдВ рдереЗред рдпрд╣ рд╕рд░реНрдЧреЗрдИ рдмрд╛рдЗрд╕реЗрдкреНрдб рдИрдЧреЛрд░реЛрд╡ , рдкрд┐рд╡рд╕реНрдЯрд▓ рдХрд░реНрдордЪрд╛рд░реА, рд╕реНрдкреАрдХрд░, рдЯреЗрд╕реНрдЯрдХреЗрдВрдЯрд░ рдХреЗ рд░рдЪрдирд╛рдХрд╛рд░реЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИред рдпрд╣ рд╡рд┐рдХреНрдЯрд░ рдкреЛрд▓рд┐рд╢рдЪреБрдХ рд╣реИ , рдЬреЛ рдЦреВрдиреА рдЙрджреНрдпрдо рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд░рд┐рдкреЛрд░реНрдЯ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╕рд┐рджреНрдз рд╣реИред Google рд╕реЗ рдирд┐рдХрд┐рддрд╛ рдЖрд░реНрдпреБрддреБрд╢реЛрд╡ рдХреЛ рднреА рдиреЛрдЯ рдХрд┐рдпрд╛; рджрд┐рдорд┐рддреНрд░реА рдорд┐рдЦрд╛рдЗрд▓реЛрд╡ рдФрд░ рдореИрдХрд╕реАрдореЛ ред рд▓реЗрдХрд┐рди рдореБрдЭреЗ Wouter Coekaerts рдХреЗ рдЖрдЧрдорди рд╕реЗ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЦреБрд╢реА рд╣реБрдИред рд╡рд╣ рдкрд┐рдЫрд▓реЗ рд╕рд╛рд▓ рдЕрдкрдиреЗ рд▓реЗрдЦ рдХреЗ рд▓рд┐рдП рдЬрд╛рдиреЗ рдЬрд╛рддреЗ рд╣реИрдВ, рдЬрд╣рд╛рдВ рд╡рд╣ рдЬрд╛рд╡рд╛ рдкреНрд░рдХрд╛рд░ рдкреНрд░рдгрд╛рд▓реА рд╕реЗ рдЧреБрдЬрд░реЗ рдереЗ рдФрд░ рдмрддрд╛рдпрд╛ рдерд╛ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдЯреВрдЯ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рд╕реЗ рдХреБрдЫ рдЬрд╛рд░реНрдЪ рдФрд░ рдореИрдВрдиреЗ рдЬрд╛рд╡рд╛ рдкрдЬрд╝рд▓рд░реНрд╕ рдХреА рдЪреМрдереА рд░рд┐рд▓реАрдЬрд╝ рдореЗрдВ рднреА рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ред


рдХрд╛рд░реНрдп рдФрд░ рд╕рдорд╛рдзрд╛рди


рддреЛ, рд╣рдорд╛рд░реЗ рдХрд╛рд░реНрдп рдХрд╛ рд╕рд╛рд░ рдпрд╣ рд╣реИ: рдПрдХ рдЬрд╛рд╡рд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдлреЙрд░реНрдо Object x = ... (рдИрдорд╛рдирджрд╛рд░ рдорд╛рдирдХ java.lang.Object , рдХреЛрдИ рдкреНрд░рдХрд╛рд░ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди) рдХреЗ рдПрдХ рдЪрд░ рдХреА рдШреЛрд╖рдгрд╛ рд╣реИред рдХрд╛рд░реНрдпрдХреНрд░рдо "рдУрдХреЗ" рдХреА рддрд░рд╣ рдХреБрдЫ рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЪрд▓рд╛рддрд╛ рд╣реИ, рдФрд░ рдкреНрд░рд┐рдВрдЯ рдХрд░рддрд╛ рд╣реИред рд╣рдо Object рдХреЛ var рд╕рд╛рде рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдкреНрд░рдХрд╛рд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рд╣рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдкрд╡рд╛рдж рдХреЗ рд╕рд╛рде рд▓реЙрдиреНрдЪ рдкрд░ рдХреНрд░реИрд╢ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред


рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреЛ рдореЛрдЯреЗ рддреМрд░ рдкрд░ рджреЛ рд╕рдореВрд╣реЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдкрд╣рд▓реЗ рдореЗрдВ, var рдХреА рдЬрдЧрд╣ рд▓реЗрдиреЗ рдХреЗ рдмрд╛рдж, рд╡реИрд░рд┐рдПрдмрд▓ рдЖрджрд┐рдо рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ (рдЕрд░реНрдерд╛рдд, рдпрд╣ рдореВрд▓ рд░реВрдк рд╕реЗ рдСрдЯреЛрдмреЙрдХреНрд╕рд┐рдВрдЧ рдерд╛)ред рджреВрд╕рд░рд╛ рдкреНрд░рдХрд╛рд░ рдСрдмреНрдЬреЗрдХреНрдЯ рд░рд╣рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди Object рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╣реИред рдпрд╣рд╛рдВ рдЖрдк рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рдЙрдкрд╕рдореВрд╣ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЬреЗрдирд░рд┐рдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред


рдореБрдХреНрдХреЗрдмрд╛рдЬрд╝реА


рдХрд┐рд╕реА рдЖрджрд┐рдо рд╕реЗ рдХрд┐рд╕реА рд╡рд╕реНрддреБ рдХреЛ рдХреИрд╕реЗ рдЕрд▓рдЧ рдХрд┐рдпрд╛ рдЬрд╛рдП? рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ рддрд░реАрдХреЗ рд╣реИрдВред рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рдкрд╣рдЪрд╛рди рдХреЗ рд▓рд┐рдП рдЬрд╛рдБрдЪ рдХрд░рдирд╛ рд╣реИред рдпрд╣ рд╕рдорд╛рдзрд╛рди рдирд┐рдХрд┐рддрд╛ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛:


 Object x = 1000; if (x == new Integer(1000)) throw new Error(); System.out.println("Ok"); 

рдЬрдм x рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдирдП рдСрдмреНрдЬреЗрдХреНрдЯ new Integer(1000) рд╕рдВрджрд░реНрдн рдореЗрдВ рд╕рдорд╛рди рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдФрд░ рдпрджрд┐ рдпрд╣ рдПрдХ рдЖрджрд┐рдо рд╣реИ, рддреЛ рднрд╛рд╖рд╛ рдХреЗ рдирд┐рдпрдореЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ new Integer(1000) рддреБрд░рдВрдд рдПрдХ рдЖрджрд┐рдо рдореЗрдВ рднреА рдкреНрд░рдХрдЯ рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреА рддреБрд▓рдирд╛ рдЖрджрд┐рдо рдХреЗ рд░реВрдк рдореЗрдВ рдХреА рдЬрд╛рддреА рд╣реИред


рдПрдХ рдФрд░ рддрд░реАрдХрд╛ рд╣реИ рдУрд╡рд░рд▓реЛрдб рддрд░реАрдХреЗред рдЖрдк рдЕрдкрдирд╛ рдЦреБрдж рдХрд╛ рд▓рд┐рдЦ тАЛтАЛрд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╕рд░реНрдЧреЗрдИ рдПрдХ рдЕрдзрд┐рдХ рд╕реБрд░реБрдЪрд┐рдкреВрд░реНрдг рд╡рд┐рдХрд▓реНрдк рдХреЗ рд╕рд╛рде рдЖрдпрд╛: рдорд╛рдирдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред List.remove рд╡рд┐рдзрд┐ List.remove , рдЬреЛ рдЕрддрд┐рднрд╛рд░рд┐рдд рд╣реИ рдФрд░ рдЗрдВрдбреЗрдХреНрд╕ рджреНрд╡рд╛рд░рд╛ рдпрд╛ рддреЛ рдПрдХ рддрддреНрд╡ рдХреЛ рд╣рдЯрд╛ рд╕рдХрддрд╛ рд╣реИ рдпрджрд┐ рдПрдХ рдЖрджрд┐рдо рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдпрд╛ рдХрд┐рд╕реА рддрддреНрд╡ рдХреЛ рдореВрд▓реНрдп рджреНрд╡рд╛рд░рд╛ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк List<Integer> рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдЗрд╕рд╕реЗ рдмрд╛рд░-рдмрд╛рд░ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдореЗрдВ рдмрдЧ рдкреИрджрд╛ рд╣реЛрддреЗ рд╣реИрдВред рд╣рдорд╛рд░реЗ рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП, рд╕рдорд╛рдзрд╛рди рдЗрд╕ рддрд░рд╣ рджрд┐рдЦ рд╕рдХрддрд╛ рд╣реИ:


 Object x = 1000; List<?> list = new ArrayList<>(); list.remove(x); System.out.println("Ok"); 

рдЕрдм рд╣рдо рдЦрд╛рд▓реА рд╕реВрдЪреА рдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рди рдХрд┐рд╕реА рддрддреНрд╡ 1000 рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдпрд╣ рд╕рд┐рд░реНрдл рдПрдХ рдмреЗрдХрд╛рд░ рдХрд╛рд░реНрд░рд╡рд╛рдИ рд╣реИред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рд╣рдо Object рдХреЛ var рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рдЗрдВрдбреЗрдХреНрд╕ 1000 рдХреЗ рд╕рд╛рде рдПрд▓рд┐рдореЗрдВрдЯ рдХреЛ IndexOutOfBoundsException рдПрдХ рдЕрдиреНрдп рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░реЗрдВрдЧреЗред рдФрд░ рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА IndexOutOfBoundsException рдУрд░ рдЬрд╛рддрд╛ рд╣реИред


рддреАрд╕рд░реА рд╡рд┐рдзрд┐ рдкреНрд░рдХрд╛рд░ рд░реВрдкрд╛рдВрддрд░рдг рдСрдкрд░реЗрдЯрд░ рд╣реИред рд╣рдо рдХрд┐рд╕реА рдЕрдиреНрдп рдЖрджрд┐рдо рдХреЛ рдПрдХ рдЖрджрд┐рдо рдкреНрд░рдХрд╛рд░ рдореЗрдВ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдПрдХ рд╡рд╕реНрддреБ рдХреЛ рдХреЗрд╡рд▓ рддрднреА рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рдЙрд╕реА рдкреНрд░рдХрд╛рд░ рдХрд╛ рдПрдХ рдЖрд╡рд░рдг рд╣реЛрддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рд╣рдо рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░реЗрдВрдЧреЗ (рдлрд┐рд░ рдЕрдирдмреЙрдХреНрд╕рд┐рдВрдЧ рд╣реЛрдЧрд╛)ред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╣рдореЗрдВ рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд рдкреНрд░рднрд╛рд╡ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ: рдПрдХ рдЕрдкрд╡рд╛рдж рдПрдХ рдЖрджрд┐рдо рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рд╣реИ, рди рдХрд┐ рдХрд┐рд╕реА рд╡рд╕реНрддреБ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд▓реЗрдХрд┐рди рдЯреНрд░рд╛рдЗ-рдХреИрдЪ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реЛрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡рд┐рдХреНрдЯрд░ рдиреЗ рдХрд┐рдпрд╛:


 Object x = 40; try { throw new Error("Oops :" + (char)x); } catch (ClassCastException e) { System.out.println("Ok"); } 

рдпрд╣рд╛рдБ, ClassCastException рдЕрдкреЗрдХреНрд╖рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рд╣реИ, рдлрд┐рд░ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди var рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж var рдпрд╣ рдЕрдкрд╡рд╛рдж рдЧрд╛рдпрдм рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рд╣рдо рдХреБрдЫ рдФрд░ рдлреЗрдВрдХ рджреЗрддреЗ рд╣реИрдВред рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реИ рдХрд┐ рдЕрдЧрд░ рдпрд╣ рдЦреВрдиреА рдЙрджреНрдпрдо рд╕реЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдХреЛрдб рд╕реЗ рдкреНрд░реЗрд░рд┐рдд рд╣реИ?


рдПрдХ рдЕрдиреНрдп рдкреНрд░рдХрд╛рд░ рдХрд╛ рд░реВрдкрд╛рдВрддрд░рдг рд╡рд┐рдХрд▓реНрдк Wouter рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЖрдк рдСрдкрд░реЗрдЯрд░ рдХреЗ рдЕрдЬреАрдм рддрд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ ?: ред рд╕рдЪ рд╣реИ, рдЗрд╕рдХрд╛ рдХреЛрдб рд╕рд┐рд░реНрдл рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкрд░рд┐рдгрд╛рдо рджреЗрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рдЗрд╕реЗ рдХрд┐рд╕реА рддрд░рд╣ рд╕реЗ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рддрд╛рдХрд┐ рдХреЛрдИ рдЕрдкрд╡рд╛рдж рди рд╣реЛред рддреЛ, рдпрд╣ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ, рдХрд╛рдлреА рд╢рд╛рди рд╕реЗ:


 Object x = 1.0; System.out.println(String.valueOf(false ? x : 100000000000L).substring(12) + "Ok"); 

рдЗрд╕ рд╡рд┐рдзрд┐ рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рдпрд╣ рд╣реИ рдХрд┐ рд╣рдо рд╕реАрдзреЗ x рдХреЗ рдорд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЯрд╛рдЗрдк x рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЛ false ? x : 100000000000L рд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИ false ? x : 100000000000L false ? x : 100000000000L ред рдпрджрд┐ x рдПрдХ Object , рддреЛ рд╕рдВрдкреВрд░реНрдг рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХрд╛ рдкреНрд░рдХрд╛рд░ Object , рдФрд░ рдлрд┐рд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╕рд┐рд░реНрдл рдмреЙрдХреНрд╕рд┐рдВрдЧ рд╣реИ, String.valueOf() 100000000000 рд╕реНрдЯреНрд░рд┐рдВрдЧ String.valueOf() , String.valueOf() substring(12) рдПрдХ рдЦрд╛рд▓реА рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реИред рдпрджрд┐ рдЖрдк var рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЯрд╛рдЗрдк x double рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЗрд╕рд▓рд┐рдП рдкреНрд░рдХрд╛рд░ false ? x : 100000000000L false ? x : 100000000000L рднреА double , рдпрд╛рдиреА 100000000000L 1.0E11 рдореЗрдВ рдмрджрд▓ рдЬрд╛рдПрдЧрд╛, рдЬрд╣рд╛рдВ рдпрд╣ 12 рдЕрдХреНрд╖рд░реЛрдВ рд╕реЗ рдмрд╣реБрдд рдХрдо рд╣реИ, рдЗрд╕рд▓рд┐рдП рдХреЙрд▓рд┐рдВрдЧ substring StringIndexOutOfBoundsException рдУрд░ рдЬрд╛рддрд╛ рд╣реИред


рдЕрдВрдд рдореЗрдВ, рд╣рдо рдЗрд╕ рддрдереНрдп рдХрд╛ рд▓рд╛рдн рдЙрдард╛рддреЗ рд╣реИрдВ рдХрд┐ рдПрдХ рдЪрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдирд┐рд░реНрдорд╛рдг рдХреЗ рдмрд╛рдж рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдФрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдЪрд░ рдореЗрдВ, рдЖрджрд┐рдо рдХреЗ рд╡рд┐рдкрд░реАрдд, рдЖрдк null рдбрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВред рдПрдХ рдЪрд░ рдореЗрдВ null рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИ, рдХрдИ рддрд░реАрдХреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдпрд╣рд╛рдБ, рд░рд╛рдЙрдЯрд░ рдиреЗ рднреА рд╣рд╛рд╕реНрдпрд╛рд╕реНрдкрдж Integer.getInteger рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рд░рдЪрдирд╛рддреНрдордХ рддрд░реАрдХрд╛ рдЕрдкрдирд╛рдпрд╛:


 Object x = 1; x = Integer.getInteger("moo"); System.out.println("Ok"); 

рд╣рд░ рдХреЛрдИ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╡рд┐рдзрд┐ рдПрдХ рд╕рд┐рд╕реНрдЯрдо рдЧреБрдг рдкрдврд╝рддреА рд╣реИ рдЬрд┐рд╕реЗ moo рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░, рдЕрдЧрд░ рдХреЛрдИ рдПрдХ рд╣реИ, рддреЛ рдЗрд╕реЗ рдПрдХ рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдмрджрд▓рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддрд╛ рд╣реИ, рдЕрдиреНрдпрдерд╛ рдпрд╣ null ред рдпрджрд┐ рдХреЛрдИ рд╕рдВрдкрддреНрддрд┐ рдирд╣реАрдВ рд╣реИ, рддреЛ рд╣рдо рдЪреБрдкрдЪрд╛рдк рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ null рдЕрд╕рд╛рдЗрди рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЬрдм рдпрд╣ рдПрдХ рдЖрджрд┐рдо (рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдмреЙрдХреНрд╕рд┐рдВрдЧ рд╣реЛрддрд╛ рд╣реИ) рдХреЛ рдЕрд╕рд╛рдЗрди рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╕рдордп NullPointerException рд╕реЗ рдЧрд┐рд░ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдЖрд╕рд╛рди рдЬрд░реВрд░ рд╣реЛ рд╕рдХрддрд╛ рдерд╛ред рдХрд┐рд╕реА рди рдХрд┐рд╕реА рд╕рдВрд╕реНрдХрд░рдг x = null; рдпрд╣ рдХреНрд░реЙрд▓ рдирд╣реАрдВ рдХрд░рддрд╛ - рдпрд╣ рд╕рдВрдХрд▓рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХрдВрдкрд╛рдЗрд▓рд░ рдЗрд╕реЗ рдЕрдм рдирд┐рдЧрд▓ рдЬрд╛рдПрдЧрд╛:


 Object x = 1; x = (Integer)null; System.out.println("Ok"); 

рд╡рд╕реНрддреБ рдкреНрд░рдХрд╛рд░


рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдЖрдк рдЕрдм рдЖрджрд┐рдо рдХреЗ рд╕рд╛рде рдирд╣реАрдВ рдЦреЗрд▓ рд╕рдХрддреЗ рд╣реИрдВред рдЖрдк рдФрд░ рдХреНрдпрд╛ рд╕реЛрдЪ рд╕рдХрддреЗ рд╣реИрдВ?


рдЦреИрд░, рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рджрд┐рдорд┐рддреНрд░реА рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рд╕рдмрд╕реЗ рд╕рд░рд▓ рд╡рд┐рдзрд┐ рдЕрдзрд┐рднрд╛рд░ рд╡рд┐рдзрд┐:


 public static void main(String[] args) { Object x = "Ok"; sayWhat(x); } static void sayWhat(Object x) { System.out.println(x); } static void sayWhat(String x) { throw new Error(); } 

рдЬрд╛рд╡рд╛ рдореЗрдВ рдЕрддрд┐рднрд╛рд░рд┐рдд рддрд░реАрдХреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдирд╛ рд╕рдВрдХрд▓рд┐рдд рдЕрд╡рд╕реНрдерд╛ рдореЗрдВ, рд╕рд╛рдВрдЦреНрдпрд┐рдХреАрдп рд░реВрдк рд╕реЗ рд╣реЛрддрд╛ рд╣реИред SayWhat sayWhat(Object) рд╡рд┐рдзрд┐ рдХреЛ sayWhat(Object) , рд▓реЗрдХрд┐рди рдпрджрд┐ рд╣рдо рдЯрд╛рдЗрдк x рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рддреЗ рд╣реИрдВ, рддреЛ String sayWhat(String) , рдФрд░ рдЗрд╕рд▓рд┐рдП рдЕрдзрд┐рдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ sayWhat(String) рд╡рд┐рдзрд┐ рд▓рд┐рдВрдХ рдХреА рдЬрд╛рдПрдЧреАред


рдЬрд╛рд╡рд╛ рдореЗрдВ рдЕрд╕реНрдкрд╖реНрдЯ рдХреЙрд▓ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЕрдиреНрдп рддрд░реАрдХрд╛ рдЪрд░ рддрд░реНрдХреЛрдВ (рд╡реЗрд░рдЧреЗрдЬ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИред рд░рд╛рдЙрдЯрд░ рдиреЗ рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рдпрд╛рдж рдХрд┐рдпрд╛:


 Object x = new Object[] {}; Arrays.asList(x).get(0); System.out.println("Ok"); 

рдЬрдм рдЪрд░ рдкреНрд░рдХрд╛рд░ Object , рддреЛ рдХрдВрдкрд╛рдЗрд▓рд░ рд╕реЛрдЪрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдЪрд░ рддрд░реНрдХ рд╣реИ рдФрд░ рд╕рд░рдгреА рдХреЛ рдПрдХ рддрддреНрд╡ рдХреЗ рджреВрд╕рд░реЗ рд╕рд░рдгреА рдореЗрдВ рд▓рдкреЗрдЯрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП get() рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдкреВрд░рд╛ рд╣реЛрддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк var рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ Object[] рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдХреЛрдИ рдЕрддрд┐рд░рд┐рдХреНрдд рд░реИрдкрд┐рдВрдЧ рдирд╣реАрдВ рд╣реЛрдЧреАред рдЗрд╕ рддрд░рд╣ рд╣рдо рдПрдХ рдЦрд╛рд▓реА рд╕реВрдЪреА get() рдХрд░рддреЗ get() , рдФрд░ get() рдХреЙрд▓ рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рдПрдЧреАред


Maccimo рдХрдЯреНрдЯрд░ рдХреЗ рд▓рд┐рдП рдЪрд▓рд╛ рдЧрдпрд╛: рдЙрдиреНрд╣реЛрдВрдиреЗ рдореЗрдердбрд▓ рдПрдкреАрдЖрдИ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рд┐рдВрдЯрд▓ рдХреЙрд▓ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛:


 Object x = "Ok"; MethodHandles.Lookup lookup = MethodHandles.lookup(); MethodHandle mh = lookup.findVirtual( PrintStream.class, "println", MethodType.methodType(void.class, Object.class)); mh.invokeExact(System.out, x); 

invokeExact рд╡рд┐рдзрд┐ рдФрд░ java.lang.invoke рдХрдИ рдЕрдиреНрдп рддрд░реАрдХреЛрдВ рдореЗрдВ рддрдерд╛рдХрдерд┐рдд "рдкреЙрд▓реАрдореЙрд░реНрдлрд┐рдХ рд╣рд╕реНрддрд╛рдХреНрд╖рд░" рд╣реИрдВред рдпрджреНрдпрдкрд┐ рдЗрд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рд╡реИрд░рд┐рдПрдЧ invokeExact(Object... args) рд╡рд┐рдзрд┐ рдХреЗ рд░реВрдк рдореЗрдВ рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдпрд╣ рдорд╛рдирдХ рд╕рд░рдгреА рдкреИрдХрд┐рдВрдЧ рдореЗрдВ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдПрдХ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдмрд╛рдпрдЯреЗрдХреЛрдб рдореЗрдВ рдЙрддреНрдкрдиреНрди рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкрд╛рд░рд┐рдд рддрд░реНрдХреЛрдВ рдХреЗ рдкреНрд░рдХрд╛рд░реЛрдВ рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИред invokeExact рд╡рд┐рдзрд┐ invokeExact рд╕реБрдкрд░-рдлрд╛рд╕реНрдЯ invokeExact рдореЗрдердб invokeExact рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдХрд╛рд╕реНрдЯрд┐рдВрдЧ рдпрд╛ рдмреЙрдХреНрд╕рд┐рдВрдЧ рдЬреИрд╕реЗ рдХреЛрдИ рднреА рдорд╛рдирдХ рддрд░реНрдХ рд░реВрдкрд╛рдВрддрд░рдг рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рд╣реИрдВрдбрд▓ рдореЗрдердб рдЯрд╛рдЗрдк рд╕реЗ рдХреЙрд▓ рд╕рд┐рдЧреНрдиреЗрдЪрд░ рдХреЗ рдорд┐рд▓рд╛рди рдХреА рдЙрдореНрдореАрдж рдХреА рдЬрд╛рддреА рд╣реИред рдЗрд╕реЗ рд░рдирдЯрд╛рдЗрдо рдкрд░ рдЪреЗрдХ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЬреИрд╕рд╛ рдХрд┐ var рдорд╛рдорд▓реЗ рдореЗрдВ рдЯреВрдЯрд╛ рд╣реИ, рд╣рдореЗрдВ рдПрдХ WrongMethodTypeException ред


рдЬреЗрдирд░рд┐рдХ


рдмреЗрд╢рдХ, рдЬрд╛рд╡рд╛ рдореЗрдВ рдХрд┐рд╕реА рднреА рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП рдкреНрд░рдХрд╛рд░реЛрдВ рдХрд╛ рдорд╛рдирдХреАрдХрд░рдг рдПрдХ рдЯреНрд╡рд┐рдВрдХрд▓ рдЬреЛрдбрд╝ рд╕рдХрддрд╛ рд╣реИред рджрд┐рдорд┐рддреНрд░реА рдиреЗ рдХреЛрдб рдХреЗ рд╕рдорд╛рди рдПрдХ рд╕рдорд╛рдзрд╛рди рд▓рд╛рдпрд╛ рдЬрд┐рд╕реЗ рдореИрдВ рд╢реБрд░реВ рдореЗрдВ рднрд░ рдЖрдпрд╛ рдерд╛ред рджрд┐рдорд┐рддреНрд░реА рдХрд╛ рдирд┐рд░реНрдгрдп рдХреНрд░рд┐рдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЕрдкрдирд╛ рджрд┐рдЦрд╛рдКрдВрдЧрд╛:


 public static void main(String[] args) { Object x = foo(new StringBuilder()); System.out.println(x); } static <T> T foo(T x) { return (T)"Ok"; } 

StringBuilder рд░реВрдк рдореЗрдВ рдЯрд╛рдЗрдк T рдЖрдЙрдЯрдкреБрдЯ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕ рдХреЛрдб рдореЗрдВ StringBuilder рдореЗрдВ рдбрд╛рдпрд▓-рдкреАрдпрд░ рдкрд░ рдЯрд╛рдЗрдк рдЪреЗрдХ рдбрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдВрдкрд╛рдЗрд▓рд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдпрд╣ рдЙрд╕рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ рдХрд┐ StringBuilder рдХреЛ Object рдХреЛ рд╕реМрдВрдкрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рд╕рдм рдХреБрдЫ рдареАрдХ рд╣реИред рдХреЛрдИ рднреА рдЗрд╕ рддрдереНрдп рдХреЗ рдЦрд┐рд▓рд╛рдл рдирд╣реАрдВ рд╣реИ рдХрд┐ рд░рд┐рдЯрд░реНрди рд╡реИрд▓реНрдпреВ рдХреЗ рд╕рд╛рде рд╡рд┐рдзрд┐ StringBuilder рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд▓реМрдЯрд╛рддрд╛ рд╣реИ рдпрджрд┐ рдЖрдкрдиреЗ рдкрд░рд┐рдгрд╛рдо рдкреНрд░рдХрд╛рд░ рдХреЗ рдПрдХ рдЪрд░ рдХреЛ рдкрд░рд┐рдгрд╛рдо рд╕реМрдВрдкрд╛ рд╣реИред рд╕рдВрдХрд▓рдХ рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ рдЪреЗрддрд╛рд╡рдиреА рджреЗрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рдЕрдирд┐рдпрдВрддреНрд░рд┐рдд рдбрд╛рд▓реА рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рд╡рд╣ рдЕрдкрдиреЗ рд╣рд╛рдереЛрдВ рдХреЛ рдзреЛрддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЬрдм x рдХреЛ var рд╕рд╛рде рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ var рдЯрд╛рдЗрдк x рдХреЛ StringBuilder рд░реВрдк рдореЗрдВ рднреА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рдЕрдм рдмрд┐рдирд╛ рдЬрд╛рдБрдЪ рдХреЗ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ StringBuilder рдкреНрд░рдХрд╛рд░ рдЪрд░ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдФрд░ рдЕрд╕рд╛рдЗрди рдХрд░рдирд╛ рдмреЗрдХрд╛рд░ рд╣реИред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, var рдмрджрд▓рдиреЗ рдХреЗ рдмрд╛рдж var рдкреНрд░реЛрдЧреНрд░рд╛рдо рд╕реБрд░рдХреНрд╖рд┐рдд рд░реВрдк рд╕реЗ ClassCastException рд╕рд╛рде рдХреНрд░реИрд╢ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред


рд░рд╛рдЙрдЯрд░ рдиреЗ рдорд╛рдирдХ рддрд░реАрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕ рд╕рдорд╛рдзрд╛рди рдХрд╛ рдПрдХ рдкреНрд░рдХрд╛рд░ рд╕реБрдЭрд╛рдпрд╛:


 Object o = ((List<String>)(List)List.of(1)).get(0); System.out.println("Ok"); 

рдЕрдВрдд рдореЗрдВ, Wouter рдХрд╛ рдПрдХ рдЕрдиреНрдп рд╡рд┐рдХрд▓реНрдк:


 Object x = ""; TreeSet<?> set = Stream.of(x) .collect(toCollection(() -> new TreeSet<>((a, b) -> 0))); if (set.contains(1)) { System.out.println("Ok"); } 

рдпрд╣рд╛рдВ, var рдпрд╛ Object рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╕реНрдЯреНрд░реАрдо рдЯрд╛рдЗрдк рдХреЛ Stream<Object> рдпрд╛ Stream<String> рд░реВрдк рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рддрджрдиреБрд╕рд╛рд░, TreeSet рдкреНрд░рдХрд╛рд░ рдФрд░ рддреБрд▓рдирд┐рддреНрд░ рд▓рдВрдмреЛрджрд░ рдкреНрд░рдХрд╛рд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред var рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреЛ рд▓реИрдореНрдмреНрдбрд╛ рдореЗрдВ рдЖрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЗрд╕рд▓рд┐рдП рд▓реИрдореНрдмрдбрд╛ рд░рдирдЯрд╛рдЗрдо рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдЬреЗрдирд░реЗрдЯ рдХрд░рддреЗ рд╕рдордп, рдПрдХ рдкреНрд░рдХрд╛рд░ рдХрд╛ рд░реВрдкрд╛рдВрддрд░рдг рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдбрд╛рд▓рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдПрдХ ClassCastException рдХреЛ рдПрдХ рдпреВрдирд┐рдЯ рдбрд╛рд▓рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╕рдордп ClassCastException рджреЗрддрд╛ рд╣реИред


рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдкрд░рд┐рдгрд╛рдо рдмрд╣реБрдд рдЙрдмрд╛рдК рдерд╛ред рдпрджрд┐ рдЖрдк var рдХреЛ рддреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдореВрд▓рднреВрдд рд░реВрдк рд╕реЗ рднрд┐рдиреНрди рддрд░реАрдХреЛрдВ рдХреЗ рд╕рд╛рде рдЖ рд╕рдХрддреЗ рд╣реИрдВ, рддреЛ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рд▓рд┐рдЦреЗрдВред

Source: https://habr.com/ru/post/hi469111/


All Articles