рдХреЛрдЯрд▓рд┐рди рдПрдо 4, рд╣рдорд╛рд░реА
рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рдХрд╛ рдПрдХ рдФрд░ рдореАрд▓ рдХрд╛ рдкрддреНрдерд░ рд╣реИ
, рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ ред рдЕрдм рдХреЛрдЯрд▓рд┐рди JDK7 рдХреЗ рд╕рд╛рде рд╕рдВрдЧрдд рд╣реИ, рдФрд░ рднреА рдмреЗрд╣рддрд░ рддрд░реАрдХреЗ рд╕реЗ рдЖрдЙрдЯрдкреБрдЯ рдХрд░рдирд╛ рд╕реАрдЦрд╛, рдФрд░ рддреЗрдЬ рд╣реЛ рдЧрдпрд╛ред рдбреАрдмрдЧрд░ рдиреЗ рдмрд╣реБрдд рдкреНрд░рдЧрддрд┐ рдХреА рд╣реИ, IDE рдХрд╛ рдПрдХреАрдХрд░рдг JUnit рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдПрдХ рдирдпрд╛ рдЕрд╕реЗрдВрдмрд▓реА рддрдВрддреНрд░ рд╕рдорд░реНрдерд┐рдд рд╣реИ, рдЬреЛ рдЕрдВрддрддрдГ рдПрдХ рд╡реГрджреНрдзрд┐рд╢реАрд▓ рд╕рдВрдХрд▓рдХ рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд┐рдХрд╕рд┐рдд рд╣реЛрдЧрд╛ ... рдЗрд╕ рдкреЛрд╕реНрдЯ рдореЗрдВ рдореИрдВ рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рдмрд╛рдд рдХрд░реВрдБрдЧрд╛, рдЖрдк
рдпрд╣рд╛рдБ M4 рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдФрд░ рдЕрдзрд┐рдХ (рдЕрдВрдЧреНрд░реЗрдЬреА рдореЗрдВ) рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред
KAnnotator
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рд╢рд╛рдпрдж рдпрд╛рдж рдХрд░рддреЗ рд╣реИрдВ, рдХреЛрдЯрд▓рд┐рди рдкреНрд░рдХрд╛рд░ рдХреА рдкреНрд░рдгрд╛рд▓реА рдЬрд╛рд╡рд╛ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХреБрдЫ рдЕрдзрд┐рдХ рд╕рдореГрджреНрдз рд╣реИред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдХреЛрдЯрд▓рд┐рди рдЯрд╛рдЗрдк рд╕рд┐рд╕реНрдЯрдо рд╕реНрддрд░ рдкрд░ рдЕрд╢рдХреНрдд рд╕рдВрджрд░реНрднреЛрдВ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЬрдм рддрдХ рдЖрдкрдХреЛ рдЬрд╛рд╡рд╛ рдХреЛрдб рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдЬреЛ рдХрд╣рддрд╛ рд╣реИ рдХрд┐ рдХрд╣реАрдВ рднреА рдЕрд╢рдХреНрдд рдФрд░ рдХреНрдпрд╛ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдХреЛрдЯрд▓рд┐рди рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЛ рд╕рдмрд╕реЗ рдЦрд░рд╛рдм рдорд╛рдирдирд╛ тАЛтАЛрдкрдбрд╝рддрд╛ рд╣реИ: рд╕рдм рдХреБрдЫ-рд╕рдм рдХреБрдЫ рд╢реВрдиреНрдп рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реБрд░рдХреНрд╖рд┐рдд рд╣реИ, рд▓реЗрдХрд┐рди рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП, рдкрд┐рдЫрд▓реА рд░рд┐рд▓реАрдЬ, рдХреЛрдЯрд▓рд┐рди рдПрдо 3 рдореЗрдВ, рд╣рдордиреЗ рдПрдХ рдмрд╛рд╣рд░реА рдПрдиреЛрдЯреЗрд╢рди рддрдВрддреНрд░ рдХрд╛ рд╕рдорд░реНрдерди рдХрд┐рдпрд╛, рдЬреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдкрд░реНрдпрд╛рд╡рд░рдг рдХреЛ рд╕рдордЭрд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдпрд╛ рд╡рд╣ рддрд░реАрдХрд╛ рдХрднреА рднреА рд╢реВрдиреНрдп рдирд╣реАрдВ рд▓реМрдЯрддрд╛ рд╣реИ (рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЖрдк рдкрд░реНрдпрд╛рд╡рд░рдг рдХреЛ рдФрд░ рдЕрдзрд┐рдХ рдмрддрд╛ рд╕рдХрддреЗ рд╣реИрдВ рд▓реЗрдХрд┐рди рдЙрд╕ рд╕рдордп рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ)ред
рд╡реИрд╕реЗ, рдпреЗ рдПрдиреЛрдЯреЗрд╢рди рди рдХреЗрд╡рд▓ рдХреЛрдЯрд▓рд┐рди рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реИрдВ, рдЗрдВрдЯреЗрд▓реАрдЬреЗ рдЖрдИрдбреАрдИрдП рдореЗрдВ рдЕрджреНрднреБрдд
рдирд┐рд░реАрдХреНрд╖рдг рд╣реИрдВ рдЬреЛ рдЬрд╛рд╡рд╛ рдореЗрдВ рдПрдирдкреАрдИ рд╕реЗ рдмрдЪрдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддреЗ рд╣реИрдВ , рд╣рдо рдЬреЗрдЯрдмреНрд░реЗрди рдкрд░ рдЙрдирдХрд╛ рд▓рдЧрд╛рддрд╛рд░ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдмрд╣реБрдд рдкреНрд░рд╕рдиреНрди рд╣реЛрддреЗ рд╣реИрдВред
рд╣рд╛рд▓рд╛рдВрдХрд┐, рдмрдбрд╝реЗ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдПрдиреЛрдЯреЗрдЯ рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ, рдФрд░ рдЙрдирдХрд╛ рдХреЛрдб рд╣рдореЗрд╢рд╛ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдХреМрди рд╕реЗ рдПрдиреЛрдЯреЗрд╢рди рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕рд▓рд┐рдП, рд╣рдордиреЗ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдЙрдкрдХрд░рдг рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ (рд▓рд┐рдЦрд╛, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдХреЛрдЯрд▓рд┐рди рдореЗрдВ) - рдХреЗрдиреЛрдЯреЗрдЯрд░, рдЬреЛ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рдмрд╛рдЗрдЯ рдХреЛрдб рдХреЛ рдкрдврд╝рддрд╛ рд╣реИ рдФрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЖрд╡рд╢реНрдпрдХ рдПрдиреЛрдЯреЗрд╢рди рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ: рдЬрд╛рд░ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ рдЗрдирдкреБрдЯ рд╣реИ, KAnnotator рдЙрдирдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдПрдиреЛрдЯреЗрд╢рди рдпреБрдХреНрдд xml рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд░рддрд╛ рд╣реИ:

рдпреЗ рдПрдиреЛрдЯреЗрд╢рди рдЖрдкрдХреА рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдЖрдИрдбреАрдИ рдФрд░ рдХреЛрдЯрд▓рд┐рди рдХрдВрдкрд╛рдЗрд▓рд░ рджреЛрдиреЛрдВ рдЙрдиреНрд╣реЗрдВ рджреЗрдЦреЗрдВрдЧреЗред
KAnnotator рдЕрднреА рднреА
рдмрд╣реБрдд рдЫреЛрдЯрд╛ рд╣реИ , рдпрд╣ рд╡рд┐рдХрд╕рд┐рдд рдФрд░ рд╕реНрдорд╛рд░реНрдЯ рд╣реЛ рдЬрд╛рдПрдЧрд╛, рд▓реЗрдХрд┐рди рдЖрдЬ рд╣рдорд╛рд░реЗ рдкрд╛рд╕
JDK рдХрд╛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдПрдиреЛрдЯреЗрдЯ рд╕рдВрд╕реНрдХрд░рдг рд╣реИ , рдЬреЛ M4 рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИред
рдбреЗрдЯрд╛ рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдХреЙрдкреА рдХрд░реЗрдВ
рдПрдо 3 рдореЗрдВ
рдбреЗрдЯрд╛ рдХрдХреНрд╖рд╛рдПрдВ рджрд┐рдЦрд╛рдИ рджреАрдВ, рдФрд░ рдХрдИ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдиреЗ рдЗрди рд╡рд░реНрдЧреЛрдВ рдХреА рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдХреЙрдкреА рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рд╛, рдХреБрдЫ рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ (рд╕реНрд╡рдпрдВ рд╡рд╕реНрддреБрдПрдВ рдЕрдХреНрд╕рд░ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рд╣реИрдВ)ред M4 рдореЗрдВ, рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рд╕рдорд░реНрдерд┐рдд рд╣реИ:
data class Person(val firstName: String, val lastName: String)
fun Person.asMarried(newLastName: String)
= this.copy(lastName = newLastName)
рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ () рдлрд╝рдВрдХреНрд╢рди рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╕рднреА рдбреЗрдЯрд╛ рд╡рд░реНрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрддреНрдкрдиреНрди рд╣реЛрддрд╛ рд╣реИ, рдЗрд╕рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛ рдПрдХ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рд╣реЛрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рдХреЙрдкреА рдХрд░рддреЗ рд╕рдордп рдХреЗрд╡рд▓ рдЙрди рдЧреБрдгреЛрдВ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ рдЬрд┐рдирдХреЗ рдорд╛рди рдмрджрд▓реЗ рдЬрд╛рддреЗ рд╣реИрдВред
рдЬрд╛рд╡рд╛ рднрд┐рдиреНрдирддрд╛
рдХреЛрдЯрд▓рд┐рди рдХреА рдЬреЗрдиреЗрд░рд┐рдХ рдХрдХреНрд╖рд╛рдПрдВ рдЖрдкрдХреЛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдорд╛рдкрджрдВрдбреЛрдВ рдХреА рдкрд░рд┐рд╡рд░реНрддрдирд╢реАрд▓рддрд╛ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИрдВ, рдФрд░ рд╕рдВрдЧреНрд░рд╣ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдореЗрдВ рдХреЗрд╡рд▓-рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрдВрдЯрд░рдлреЗрд╕ рд╣реЛрддреЗ рд╣реИрдВ, рдЬреЛ рд╡реЗрд░рд┐рдПрд╢рди рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдЗрдВрдЧрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП
List , List. Kotlin. Java?
M4, Kotlin -, Java. , :
fun join(l: List, separator: String): String = ...
:
String join(List<? extends Object>, String separator)
, Java List, .
...
, , , Kotlin, ... .
IntelliJ IDEA 12, , ( Community Edition ). .
!
List , List. Kotlin. Java?
M4, Kotlin -, Java. , :
fun join(l: List, separator: String): String = ...
:
String join(List<? extends Object>, String separator)
, Java List, .
...
, , , Kotlin, ... .
IntelliJ IDEA 12, , ( Community Edition ). .
!
List , List. Kotlin. Java?
M4, Kotlin -, Java. , :
fun join(l: List, separator: String): String = ...
:
String join(List<? extends Object>, String separator)
, Java List, .
...
, , , Kotlin, ... .
IntelliJ IDEA 12, , ( Community Edition ). .
!
List , List. Kotlin. Java?
M4, Kotlin -, Java. , :
fun join(l: List, separator: String): String = ...
:
String join(List<? extends Object>, String separator)
, Java List, .
...
, , , Kotlin, ... .
IntelliJ IDEA 12, , ( Community Edition ). .
!