CodeGym/Java Blog/рдпрд╛рджреГрдЪреНрдЫрд┐рдХ/рднрд╛рд╖реНрдпреЗ. рднрд╛рдЧ 1 - рдереЛрдбреЗ рдХрдВрдЯрд╛рд│рд╡рд╛рдгреЗ
John Squirrels
рдкрд╛рддрд│реА 41
San Francisco

рднрд╛рд╖реНрдпреЗ. рднрд╛рдЧ 1 - рдереЛрдбреЗ рдХрдВрдЯрд╛рд│рд╡рд╛рдгреЗ

рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдпрд╛ рдЧреНрд░реБрдкрдордзреНрдпреЗ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХреЗрд▓реЗ
рд╕рджрд╕реНрдп
рднрд╛рдЧ 1. рдореА SOURCE рдЖрдгрд┐ CLASS рдкреНрд░рдХрд╛рд░рд╛рдЪреНрдпрд╛ рднрд╛рд╖реНрдпрд╛рдВрдмрджреНрджрд▓ рдереЛрдбрдХреНрдпрд╛рдд рд▓рд┐рд╣рд┐рд▓реЗ рдЖрд╣реЗ. рд╣реЗ рд╡рд╛рдЪрдгреНрдпрд╛рд╕рд╛рд░рдЦреЗ рдЖрд╣реЗ, рдЬреЗрдгреЗрдХрд░реБрди рджреБрд╕-рдпрд╛ рднрд╛рдЧрд╛рдд рд╣рд░рд╡реВ рдирдпреЗ рдЖрдгрд┐ рддреБрдордЪрд╛ "рдЧреИрд░рд╕рдордЬ" рдереЛрдбрд╛ рд╡рд╛рдврд╡рд╛ =) рдореА рд╡рдЪрди рджреЗрддреЛ рдХреА рддреБрдореНрд╣рд╛рд▓рд╛ рдорд╛рд╣рд┐рдд рдЕрд╕рд▓реЗрд▓рд╛ рдХрд┐рдорд╛рди рдПрдХ рд╢рдмреНрдж рдирдХреНрдХреАрдЪ рдЕрд╕реЗрд▓! рднрд╛рд╖реНрдпреЗ.  рднрд╛рдЧ рез тАФ рдереЛрдбреЗ рдХрдВрдЯрд╛рд│рд╡рд╛рдгреЗ - рез рдЬреЗрд╡реНрд╣рд╛ рдореА рдкреНрд░рдердордЪ рдпреЗрдереЗ рдХрд╛рд░реНрдпрд╛рдВрдордзреНрдпреЗ рднрд╛рд╖реНрдпреЗ рдкрд╛рд╣рд┐рд▓реА рддреЗрд╡реНрд╣рд╛ рдореА рддреНрдпрд╛рдВрдЪреНрдпрд╛рдХрдбреЗ рдЬрд╛рд╕реНрдд рд▓рдХреНрд╖ рджрд┐рд▓реЗ рдирд╛рд╣реА. рдпреЗрдереЗ @Override рдЖрд╣реЗ, рдкрд░рдВрддреБ IDEA рддреЗ рдЬреЛрдбрддреЗ, рдореНрд╣рдгреВрди рдорд▓рд╛ рд╡рд╛рдЯрд▓реЗ рдХреА рддреЗ рддрд╕реЗ рдЕрд╕рд╛рд╡реЗ. рдХрд╛рд▓рд╛рдВрддрд░рд╛рдиреЗ, рдорд▓рд╛ рд╕рдордЬрд▓реЗ рдХреА рд╕рд░реНрд╡рдХрд╛рд╣реА рдЦреВрдк рдЦреЛрд▓ рдЖрд╣реЗ. рддреБрдореНрд╣реА рдЕрднреНрдпрд╛рд╕ рдХрд░рдд рдЕрд╕рддрд╛рдирд╛ рднрд╛рд╖реНрдпреЗ рдХрд╛рд╣реАрд╢реА рдирд┐рд░реБрдкрдпреЛрдЧреА рдкрдг рдЖрд╡рд╢реНрдпрдХ рд╡рд╛рдЯреВ рд╢рдХрддрд╛рдд. рддреЗ рдХрд╛ рдЕрд╕реНрддрд┐рддреНрд╡рд╛рдд рдЖрд╣реЗрдд рдХрд┐рдВрд╡рд╛ рддреЗ рдХрд╛рдп рдХрд░рддрд╛рдд рд╣реЗ рддреБрдореНрд╣рд╛рд▓рд╛ рдорд╛рд╣реАрдд рдирд╛рд╣реА. рддреБрдореНрд╣реА рдХрд╛рд╣реА рд▓реЗрдЦ рд╡рд╛рдЪрд▓реЗ рдЖрд╣реЗрдд рдЬреНрдпрд╛рдд рдореНрд╣рдЯрд▓реЗ рдЖрд╣реЗ рдХреА, "рд╣реЗ рдЗрддрдХреЗ рдЫрд╛рди рдЖрд╣реЗ рдХреА рдЖрдордЪреНрдпрд╛рдХрдбреЗ рдЖрддрд╛ рднрд╛рд╖реНрдпреЗ рдЖрд╣реЗрдд, рд╕рд░реНрд╡ рдХрд╛рд╣реА рдЗрддрдХреЗ рд╕реЛрдкреЗ рдЭрд╛рд▓реЗ рдЖрд╣реЗ." рдкрдг рдорд▓рд╛ рдЖрдзреА рдЧреЛрд╖реНрдЯреА рдХрд╢рд╛ рд╣реЛрддреНрдпрд╛ рд╣реЗ рдорд╛рд╣рд┐рдд рдирд╡реНрд╣рддреЗ рдЖрдгрд┐ рдЖрддрд╛ рдЧреЛрд╖реНрдЯреА рд╕реЛрдкреНрдпрд╛ рдЭрд╛рд▓реНрдпрд╛ рдЖрд╣реЗрдд рд╣реЗ рдорд▓рд╛ рд╕рдордЬрдд рдирд╡реНрд╣рддреЗ. рдЖрддрд╛ рдорд▓рд╛ рдорд╛рд╣рд┐рдд рдЖрд╣реЗ рдЖрдгрд┐ рдорд▓рд╛ рдереЛрдбреЗ рд╕рд╛рдорд╛рдпрд┐рдХ рдХрд░рд╛рдпрдЪреЗ рдЖрд╣реЗ. 3 рдкреНрд░рдХрд╛рд░рдЪреЗ (рд░рд┐рдЯреЗрдиреНрд╢рди рдкреЙрд▓рд┐рд╕реА) рднрд╛рд╖реНрдпреЗ рдЖрд╣реЗрдд:
  • рд╕реНрд░реЛрдд - рдХрдВрдкрд╛рдЗрд▓рд░рд╕рд╛рдареА рднрд╛рд╖реНрдпреЗ
  • рд╡рд░реНрдЧ - рднрд╛рд╖реНрдпрд╛рддреАрд▓ рдорд╛рд╣рд┐рддреА рдмрд╛рдпрдХреЛрдбрдордзреНрдпреЗ рд▓рд┐рд╣рд┐рд▓реА рдЬрд╛рдИрд▓ рдкрд░рдВрддреБ рд░рдирдЯрд╛рдЗрдорд╡рд░ рдЙрдкрд▓рдмреНрдз рдирд╛рд╣реА. рддреЗ рдореНрд╣рдгрддрд╛рдд рдХреА рдорд╛рдирдХ рд▓рд╛рдпрдмреНрд░рд░реАрдордзреНрдпреЗ рдпрд╛ рдкреНрд░рдХрд╛рд░рдЪреНрдпрд╛ рдЕрдиреЗрдХ рднрд╛рд╖реНрдпреЗ рдЖрд╣реЗрдд, рдЬреА рдЖрддрд╛ рдорд╛рдЧрд╛рд╕ рдЕрдиреБрдХреВрд▓рддреЗрд╕рд╛рдареА рд░рд╛рдЦреВрди рдареЗрд╡рд▓реА рдЖрд╣реЗрдд. рд╣реЗ рдЕрддрд┐рд╢рдп рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрд╛рдорд╛рдВрд╕рд╛рдареА рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рддреЗ.
  • StackOverflow рд╡рд░ рдкреНрд░рд╢реНрдиреЛрддреНрддрд░реЗ
  • рд░рдирдЯрд╛рдЗрдо тАФ рд╣реА рднрд╛рд╖реНрдпреЗ рд╕рд░реНрд╡рд╛рдд рд▓реЛрдХрдкреНрд░рд┐рдп рдЖрд╣реЗрдд. рдХреЛрдб рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рд╣реЛрдд рдЕрд╕рддрд╛рдирд╛ рддреЗ рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рддрд╛рдд.
рдкреНрд░рд╕реНрддрд╛рд╡рдиреЗрдиреЗ рд▓реЗрдЦрд╛рдЪрд╛ рдПрдХ рднрд╛рдЧ рдШреЗрддрд▓рд╛ рдЖрд╣реЗ, рдореНрд╣рдгреВрди рдореА рдпреЗрдереЗ рд╕реНрд░реЛрдд рдЖрдгрд┐ рд╡рд░реНрдЧ рднрд╛рд╖реНрдпрд╛рдВрдмрджреНрджрд▓ рд▓рд┐рд╣реАрди. рдорд▓рд╛ рд╕рд╛рдкрдбрд▓реЗрд▓реА рд╣реА рднрд╛рд╖реНрдпреЗ рдЖрд╣реЗрдд (рдЯрд╛рд╕реНрдХ 3607 рд▓рд╛ рдзрдиреНрдпрд╡рд╛рдж). рдореА рд░рдирдЯрд╛рдЗрдо рднрд╛рд╖реНрдпреЗ рд╕рдВрдмреЛрдзрд┐рдд рдХрд░рдгрд╛рд░ рдирд╛рд╣реА тАФ рддреНрдпрд╛рдкреИрдХреА рдмрд░реЗрдЪ рдЖрд╣реЗрдд рдЖрдгрд┐ рддреЗ рдпрд╛ рд▓реЗрдЦрд╛рдЪрд╛ рд╡рд┐рд╖рдп рдирд╛рд╣реАрдд. рд╕реНрд░реЛрдд:
  • java/lang/annotation/Native.class;
  • java/lang/SuppressWarnings.class
  • javax/annotation/Generated.class
  • java/lang/Override.class
рд╡рд░реНрдЧ: рд╡рд░реНрдЧ рднрд╛рд╖реНрдпреЗ рдХрд╛ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗрдд рд╣реЗ рдорд▓рд╛ рдорд╛рд╣рд┐рдд рдирд╛рд╣реА. рд╡рд┐рджреНрдпрдорд╛рди рднрд╛рд╖реНрдпрд╛рдВрд╕рд╛рдареА рдХрд╛рдЧрджрдкрддреНрд░реЗ рдХреЛрдареЗрд╣реА рд╕рд╛рдкрдбрдд рдирд╛рд╣реАрдд, рддреНрдпрд╛рдореБрд│реЗ рдорд▓рд╛ рд╡рд╛рдЯрддреЗ рдХреА рддреБрдореНрд╣реА рд╣реЗ рд╕рд╛рдорд╛рди рдорд╛рдЧреЗ рдареЗрд╡реВ рд╢рдХрддрд╛. рдкрдг рд╕рд╛рдкрдбрд▓рд╛ рддрд░ рд╢реЗрдЕрд░ рдХрд░рд╛. рд╕реНрд░реЛрдд рднрд╛рд╖реНрдпреЗ:
  1. рдиреЗрдЯрд┐рд╡реНрд╣ тАФ рдпрд╛ рднрд╛рд╖реНрдпрд╛рд╕рд╣ рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓ рдореВрд│ рдХреЛрдбрдЪрд╛ рд╕рдВрджрд░реНрдн рдШреЗрдК рд╢рдХрддреЗ;
  2. SuppressWarnings тАФ рд╣реЗ рднрд╛рд╖реНрдп рд╡рд┐рд╡рд┐рдз рдХрдВрдкрд╛рдЗрд▓рд░ рдЪреЗрддрд╛рд╡рдгреА рджрдбрдкрддреЗ;
  3. рд╡реНрдпреБрддреНрдкрдиреНрди тАФ рд╣реЗ рднрд╛рд╖реНрдп рд╡реНрдпреБрддреНрдкрдиреНрди рдХреЗрд▓реЗрд▓рд╛ рд╕реНрддреНрд░реЛрдд рдХреЛрдб рдЪрд┐рдиреНрд╣рд╛рдВрдХрд┐рдд рдХрд░рддреЗ;
  4. рдУрд╡реНрд╣рд░рд░рд╛рдЗрдб тАФ рд╣реА рднрд╛рд╖реНрдп рдкрджреНрдзрдд рдУрд╡реНрд╣рд░рд░рд╛рдЗрдб рддрдкрд╛рд╕рддреЗ.
рдЕрдзрд┐рдХ рдорд╛рд╣рд┐рддреАрд╕рд╛рдареА:

@рдореБрд│

рдореВрд│ тАФ рдореА рд╣реЗ рдХрдзреАрд╣реА рдкрд╛рд╣рд┐рд▓реЗ рдирд╛рд╣реА рдЖрдгрд┐ рд╡рд╛рдкрд░рд▓реЗ рдирд╛рд╣реА. рдорд▓рд╛ рд╡рд╛рдЯрддреЗ рдХреА рд╣реЗ рдПрдХ рджреБрд░реНрдорд┐рд│ рднрд╛рд╖реНрдп рдЖрд╣реЗ, рдХрд╛рд░рдг рдЬреЗрд╡реНрд╣рд╛ рддреБрдореНрд╣рд╛рд▓рд╛ рджреБрд╕рд░реНтАНрдпрд╛ "рдиреЗрдЯрд┐рд╡реНрд╣" рднрд╛рд╖реЗрдд рдХреЛрдб рдЪрд╛рд▓рд╡рд╛рдпрдЪрд╛ рдЕрд╕реЗрд▓ рддреЗрд╡реНрд╣рд╛ рддреЗ рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рддреЗ. рдореА рддреНрдпрд╛рдЪрд╛ рд╕реНрдкрд╖реНрдЯ рдЙрд▓реНрд▓реЗрдЦ рд╢реЛрдзрдгреНрдпрд╛рдЪрд╛ рдкреНрд░рдпрддреНрди рдХреЗрд▓рд╛ рдЖрдгрд┐ рдЕрдпрд╢рд╕реНрд╡реА рдЭрд╛рд▓реЛ.

@SuppressWarnings

SuppressWarnings тАФ рд╣реЗ рднрд╛рд╖реНрдп рдмрд░реНтАНрдпрд╛рдЪрджрд╛ рдЕрд╕реЗ рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рддреЗ: @SuppressWarnings("рдЕрдирдЪреЗрдХ"). рддреБрдореНрд╣рд╛рд▓рд╛ рдЖрдзреАрдЪ рдорд╛рд╣рд┐рддреА рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рдЗрд╢рд╛рд▒реНрдпрд╛рдВрдирд╛ рджрдбрдкрдгреНрдпрд╛рд╕рд╛рдареА рдпрд╛рдЪрд╛ рд╡рд╛рдкрд░ рдХреЗрд▓рд╛ рдЬрд╛рддреЛ. рдорд╛рдЧреАрд▓ рдЙрджрд╛рд╣рд░рдг рдЕрдирдЪреЗрдХ рдкреНрд░рдХрд╛рд░рдЪреНрдпрд╛ рд░реВрдкрд╛рдВрддрд░рдгрд╛рдВрдмрджреНрджрд▓ рдЪреЗрддрд╛рд╡рдгреА рджрдбрдкрддреЗ. рдкреБрдиреНрд╣рд╛, рд╣рд╛ рдПрдХрдореЗрд╡ рд╡рд╛рдкрд░ рдЖрд╣реЗ рдЬреНрдпрд╛рдЪрд╛ рдореА рд╕рд╛рдордирд╛ рдХреЗрд▓рд╛ рдЖрд╣реЗ.

@рд╡реНрдпреБрддреНрдкрдиреНрди

рд╡реНрдпреБрддреНрдкрдиреНрди тАФ рдорд▓рд╛ XSD рдлрд╛рдпрд▓реАрдВрдордзреВрди рд╡рд░реНрдЧ рд╡реНрдпреБрддреНрдкрдиреНрди рдХрд░рд╛рд╡реЗ рд▓рд╛рдЧрдгрд╛рд▒реНрдпрд╛ рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯрдореБрд│реЗ рдореА рдЖрддреНрддрд╛ рдпрд╛ рднрд╛рд╖реНрдпрд╛рдд рдЬрд╛рдд рдЖрд╣реЗ. рд╣реА 3 рднрд╛рд╖реНрдпреЗ рдЕрдЧрджреА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЖрд╣реЗрдд рдЖрдгрд┐ рд╕рдзреНрдпрд╛ рддреБрдореНрд╣рд╛рд▓рд╛ рд╕реНрд╡рд╛рд░рд╕реНрдп рдирд╕рдгреНрдпрд╛рдЪреА рд╢рдХреНрдпрддрд╛ рдЖрд╣реЗ. рдореА рд╢реЗрд╡рдЯрдЪреЗ рд╡рд░реНрдгрди рдХрд░реАрди.

@рдУрд╡реНрд╣рд░рд░рд╛рдЗрдб

рдУрд╡реНрд╣рд░рд░рд╛рдЗрдб тАФ рддреБрдореНрд╣реА рддреЗ рд╕рддрдд рд╡рд╛рдкрд░рддрд╛ рдЖрдгрд┐ рддреЗ рдЦреВрдк рдЙрдкрдпреБрдХреНрдд рдХрд╛рд╣реАрддрд░реА рдХрд░рддреЗ. рдПрдЦрд╛рджреА рдкрджреНрдзрдд рдУрд╡реНрд╣рд░рд░рд╛рдЗрдб рдХрд░рддрд╛рдирд╛, IDEA рдЪреНрдпрд╛ рдорджрддреАрд╢рд┐рд╡рд╛рдп рдЪреВрдХ рдХрд░рдгреЗ рд╕реЛрдкреЗ рдЖрд╣реЗ. рдЯрд╛рдпрдкрд┐рдВрдЧрдЪреНрдпрд╛ рдЪреБрдХрд╛ рдЕрд╕реЛрдд рдХрд┐рдВрд╡рд╛ рд╕рд╛рдзреНрдпрд╛ рдЪреБрдХрд╛, рдЪреБрдХрд╛ рд╣реЛрддрд╛рдд. рд╣реЗ рднрд╛рд╖реНрдп рд╣реЗ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрд▓ рдХреА рдкрд╛рд▓рдХ рд╡рд░реНрдЧрд╛рддреАрд▓ рдкрджреНрдзрдд рдЖрдордЪреНрдпрд╛ (рдиреЛрдЯреЗрдЯреЗрдб) рдкрджреНрдзрддреАрд╢реА рдЬреБрд│рддреЗ. рд╣реЗ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддреЗ рдХреА рдкрджреНрдзрдд рдЬреЛрдбрдгреНрдпрд╛рдРрд╡рдЬреА рдУрд╡реНрд╣рд░рд░рд╛рдЗрдб рдХреЗрд▓реА рдЬрд╛рдИрд▓. рдХреЛрдб рд░рд┐рдлреЕрдХреНрдЯрд░рд┐рдВрдЧ рдХрд░рддрд╛рдирд╛, рдореВрд│ рдкрджреНрдзрдд рдХрд╛рдврд▓реА рдХрд┐рдВрд╡рд╛ рдмрджрд▓рд▓реА рдЬрд╛рдК рд╢рдХрддреЗ. рдкреБрдиреНрд╣рд╛, рд╣реЗ рднрд╛рд╖реНрдп рддреНрд░реБрдЯреА рджрд░реНрд╢рд╡реЗрд▓. рддреНрдпрд╛рд╢рд┐рд╡рд╛рдп, рдЖрдордЪреА рдкрджреНрдзрдд рдлрдХреНрдд рдЬреЛрдбрд▓реА рдЬрд╛рдИрд▓. рдХрдВрдЯрд╛рд│рд╡рд╛рдгрд╛? рдореА рд╣реЛ рдореНрд╣рдгреЗрди. рдпрд╛ рд▓реЗрдЦрд╛рддреВрди рдЧреЛрд│рд╛ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдлрд╛рд░рд╕реЗ рдЙрдкрдпреБрдХреНрдд рдирд╛рд╣реА. рдпреЗрдереЗ рдЬрд╡рд│рдЬрд╡рд│ рдкреНрд░рддреНрдпреЗрдХ рдЧреЛрд╖реНрдЯ (90%) рдЖрдкрдг рдХрдзреАрд╣реА рд╡рд╛рдкрд░рдгрд╛рд░ рдирд╛рд╣реА рдХрд┐рдВрд╡рд╛ рдЕрдЧрджреА рдХреНрд╡рдЪрд┐рддрдЪ рдЕрд╕реЗ рдХрд╛рд╣реА рд╡рд░реНрдгрди рдХрд░рддреЗ. рдЙрд░реНрд╡рд░рд┐рдд 10% @Override рднрд╛рд╖реНрдпрд╛рд▓рд╛ рдирдорд╕реНрдХрд╛рд░ рдХрд░рдд рдЖрд╣реЗрдд рдЖрдгрд┐ рддреНрдпрд╛рдЪреЗ рд╡рд░реНрдгрди рдХрд░рдд рдЖрд╣реЗрдд, рдЬреЗ рдкрд╣рд┐рд▓реНрдпрд╛ рджреГрд╖реНрдЯреАрдХреНрд╖реЗрдкрд╛рдд рдирд┐рд░реБрдкрдпреЛрдЧреА рдЖрд╣реЗ. рддреЗ рдореНрд╣рдгрд╛рд▓реЗ, рдорд▓рд╛ рд╡рд╛рдЯрддреЗ рдХреА рд▓реЗрдЦрд╛рдЪрд╛ рджреБрд╕рд░рд╛ рднрд╛рдЧ рдЕрдзрд┐рдХ рдордиреЛрд░рдВрдЬрдХ рдЕрд╕реЗрд▓. рддреЗрдереЗ RUNTIME рднрд╛рд╖реНрдпрд╛рдВрд╡рд░ рдЪрд░реНрдЪрд╛ рд╣реЛрдИрд▓ тАФ рддреЗ рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА рджрд░рдореНрдпрд╛рди рдХреЛрдбрд╢реА рд╕рдВрд╡рд╛рдж рд╕рд╛рдзрддрд╛рдд рдЖрдгрд┐ рдХрд╛рд│реА рдЬрд╛рджреВ рдХрд░рддрд╛рдд. рднрд╛рд╖реНрдпреЗ. рднрд╛рдЧ 2. рд▓реЛрдВрдмреЛрдХ
рдЯрд┐рдкреНрдкрдгреНрдпрд╛
  • рд▓реЛрдХрдкреНрд░рд┐рдп
  • рдирд╡реАрди
  • рдЬреБрдиреЗ
рдЯрд┐рдкреНрдкрдгреА рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рддреБрдореНрд╣реА рд╕рд╛рдИрди рдЗрди рдХреЗрд▓реЗрд▓реЗ рдЕрд╕рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ
рдпрд╛ рдкрд╛рдирд╛рд╡рд░ рдЕрдЬреВрди рдХреЛрдгрддреНрдпрд╛рд╣реА рдЯрд┐рдкреНрдкрдгреНрдпрд╛ рдирд╛рд╣реАрдд