JAVA 8 рдореЗрдВ JSR 335 рдпрд╛ рд▓рдВрдмреЛрджрд░ рднрд╛рд╡

рдкрд░рд┐рдЪрдп


рдореИрдВрдиреЗ рдХрд▓ рдЬреЗрдПрд╡реАрдП 8 рдореЗрдВ рд▓рдВрдмреЛрджрд░ рднрд╛рд╡ рдкрд░ рдПрдХ рд╕реЗрдорд┐рдирд╛рд░ рдореЗрдВ рднрд╛рдЧ рд▓рд┐рдпрд╛ред рдЙрдиреНрд╣реЛрдВрдиреЗ рдмрд╣реБрдд рд╕реА рджрд┐рд▓рдЪрд╕реНрдк рдмрд╛рддреЗрдВ рдмрддрд╛рдИрдВред

рджрд┐рд▓рдЪрд╕реНрдк рдЪреАрдЬреЛрдВ рдореЗрдВ рд╕реЗ:

рд▓рдВрдмреЛрджрд░ рднрд╛рд╡


Comparator<Integer> cmp = (x, y) -> (x < y) ? -1 : (x > y) ? 1 : 0; 

рдмрд╛рдИрдВ рдУрд░ рд▓реИрдореНрдмреНрдбрд╛ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдЖрд╡рд╢реНрдпрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╣реИред рд╕рд╣реА рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ред "->" рдХреЗ рдмрд╛рдИрдВ рдУрд░ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рд╣реИ, рджрд╛рдИрдВ рдУрд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИред

рдпрд╣ рдирд┐рд░реНрдорд╛рдг рдмреЛрдЭрд┐рд▓ рдХреЛрдб рдХреА рдЬрдЧрд╣ рд▓реЗрддрд╛ рд╣реИ:

 Comparator<Integer> comparator = new Comparator<Integer> () { public int compare(Integer x, Integer y) { return (x < y) ? -1 : (x > y) ? 1 : 0; } }; 

рд▓реИрдореНрдмреНрдбрд╛ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпрд╛рдБ рдХрд┐рд╕реА рднреА рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддреА рд╣реИрдВред рдПрдХ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдПрдХ рд╕рд╛рд░ рд╡рд┐рдзрд┐ (рдиреАрдЪреЗ рдЙрд╕ рдкрд░ рдЕрдзрд┐рдХ) рдХреЗ рд╕рд╛рде рдПрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╣реИред Factory.make, Mapper.map рдЬреИрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЗрдВрдЯрд░рдлреЗрд╕ рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рднреА рдЬреЛрдбрд╝рд╛ рдЬрд╛рдПрдЧрд╛ред рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЙрдкрдпреЛрдЧ рдФрд░ рдЖрд╡реЗрджрди рдХреА рдХрдИ рдФрд░ рдЕрдзрд┐рдХ рд▓рдЪреАрд▓реА рд╕рдВрднрд╛рд╡рдирд╛рдПрдВред

рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд▓рдВрдмреЛрджрд░ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдЕрдиреНрдп рд╡рд░реНрдЧреЛрдВ рд╕реЗ рдЗрд╕рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЛ рд▓реЗрдирд╛ рд╕рдВрднрд╡ рд╣реИ:
 Comparator<Integer> comparator = LibraryComparator::compare; //     


рдбрд┐рдлрд╝реЙрд▓реНрдЯ рддрд░реАрдХреЛрдВ (рдбрд┐рдлреЗрдВрдбрд░) рдХреЗ рд╕рд╛рде рдЗрдВрдЯрд░рдлреЗрд╕ рдмрдврд╝рд╛рдирд╛


рд╣рд╛рдВ, рдЕрдм рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рд╕рд╛рд░ (рдХреЛрдИ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдирд╣реАрдВ рд╣реИ) рдФрд░ рд╕рд╛рд░ (рдбрд┐рдлрд╝реЙрд▓реНрдЯ) рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдХреБрдЫ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИрдВред рдЗрд╕ рдирд╡рд╛рдЪрд╛рд░ рдХреЛ рдмреБрдирд┐рдпрд╛рджреА рдЬрд╛рд╡рд╛ рд╕рдВрд╕реНрдерд╛рдУрдВ рдХреЗ рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЗ рд╡рд┐рд╕реНрддрд╛рд░ рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдорд╛рдиреНрдпрддрд╛ рдкреНрд░рд╛рдкреНрдд рд╣реИ, рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рдВрдЧрддрддрд╛ рд╕рдорд░реНрдерди рдХреЗ рд╕рд╛рде рдХрд┐рд╕реА рднреА рдЗрдВрдЯрд░рдлреЗрд╕ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдкреБрд░рд╛рдирд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╣реИ:
 public interface OldInterface { void method(); } 

рд╣рдореЗрдВ рдЗрд╕реЗ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдкреБрд░рд╛рдиреЗ рдХреЛрдб рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦрдирд╛ рд╣реЛрдЧрд╛ред рдПрдХ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╡рд┐рдзрд┐ рдЬреЛрдбрд╝реЗрдВ:
 public interface OldInterface { void method(); void newMethod() default { // default implementation } } 

рдЗрдВрдЯрд░рдлреЗрд╕ рдореЗрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╢рдмреНрдж рд▓рд┐рдЦрдирд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВ, рдЗрд╕ рдкрд░ рдЪрд░реНрдЪрд╛ рдХреА рдЧрдИ рд╣реИред

рд╕реНрдЯреНрд░реАрдо (рдмрд▓реНрдХ) рд╕рдВрдЪрд╛рд▓рди


рдПрдХ рд╢рд╛рдВрдд рдЪреАрдЬрд╝ рдЬреЛ рдЖрдкрдХреЛ рдЕрдзрд┐рдХ рд▓рдЪреАрд▓реЗ рдврдВрдЧ рд╕реЗ рд╕рдВрдЧреНрд░рд╣ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдирд┐рд░реНрд╡рд╛рдд рдореЗрдВ рдПрдХ рд╕рд╛рд░ рдЙрджрд╛рд╣рд░рдг:
 list.stream().parallel().reduce(Math::max).into(newList); 

рд╣рдордиреЗ рд╕рдВрдЧреНрд░рд╣ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рддреБрд▓рдирд┐рддреНрд░ (рд╢рд╛рдпрдж рд▓реИрдореНрдмреНрдбрд╛) рдХреЗ рд╕рд╛рде рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ рд╕реЙрд░реНрдЯ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рдлрд┐рд░ рд╣рдордиреЗ рдЕрдзрд┐рдХрддрдо рддрддреНрд╡ рдХреЛ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд┐рдпрд╛ рдФрд░ рдЗрд╕ рдореВрд▓реНрдп рдХреЛ рджреВрд╕рд░реА рд╕реВрдЪреА рдореЗрдВ рдбрд╛рд▓ рджрд┐рдпрд╛ред

рдирдИ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдкрд░ рдФрд░ рдЕрдзрд┐рдХ: http://openjdk.java.net/projects/lambda/

рдирдИ рдмреИрдардХреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ: http://jug.ru/
рд╣рдордиреЗ рд╡реАрдбрд┐рдпреЛ рд░рд┐рдХреЙрд░реНрдб рдХрд┐рдпрд╛, рдореБрдЭреЗ рдЦреБрд╢реА рд╣реЛрдЧреА рдЕрдЧрд░ рдХреЛрдИ рдЗрд╕реЗ рдЬрдирддрд╛ рдХреЗ рд▓рд┐рдП рд▓рд┐рдВрдХ рджреЗрддрд╛ рд╣реИред

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


All Articles