JSR-334 JDK 7 рдореЗрдВ рд▓рд╛рдЧреВ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдЫреЛрдЯреЗ рдЬрд╛рд╡рд╛ рднрд╛рд╖рд╛ рд╕реБрдзрд╛рд░реЛрдВ рдкрд░ рдХреЗрдВрджреНрд░рд┐рдд рд╣реИ
- рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рд╢рд╛рдмреНрджрд┐рдХ рдореЗрдВ, рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рд╕рдореВрд╣реЛрдВ рдХреЛ рдЕрдм рд░реЗрдЦрд╛рдВрдХрд┐рдд рдХрд░рдХреЗ рдЕрд▓рдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
public final static int INT_WITH_UNDERSCORES = 100_000;
- 0b рдЙрдкрд╕рд░реНрдЧ рдХреЗ рд╕рд╛рде рджреНрд╡рд┐рдЖрдзрд╛рд░реА рд╢рд╛рдмреНрджрд┐рдХ рдЬреЛрдбрд╝реЗ:
public final static int BINARY_INT = 0b001100;
- рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдм рд╕реНрд╡рд┐рдЪ рдХреБрдВрдЬреА рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
switch ( "one" ) {
case "one" :
case "two" : System.out.println( "JSR 334" );
}
- рдЕрдм рдЖрдк рд╕рд╛рдорд╛рдиреНрдп рд╡рд░реНрдЧ рдХрд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рддреЗ рд╕рдордп рдЯрд╛рдЗрдк рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЛ рдирд╣реАрдВ рджреЛрд╣рд░рд╛ рд╕рдХрддреЗ рд╣реИрдВ:
List < String > foo = new ArrayList <>();
- рдЖрдк рдкрдХрдбрд╝ рдмреНрд▓реЙрдХ рдореЗрдВ рдХрдИ рдЕрдкрд╡рд╛рдж рд╡рд░реНрдЧреЛрдВ рдХреЛ рд╕реВрдЪреАрдмрджреНрдз рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
try {
throw new NullPointerException();
} catch (ArithmeticException | NullPointerException e) {
}
- UPD рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рдЬрд╛рдБрдЪ рдкреНрд░рдпреЛрдЬрдиреЛрдВ рдХреЗ рд▓рд┐рдП, рд╕реВрдЪреАрдмрджреНрдз рд╕рдмрд╕реЗ рдЫреЛрдЯреЗ рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
try {
throw new NullPointerException();
} catch (NullPointerException | ArithmeticException e) {
//
// ArithmeticException a = e;
//
RuntimeException r = e;
}
- рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рдВрд╕рд╛рдзрди рдЬреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдХреЛрд╢рд┐рд╢ рдмреНрд▓реЙрдХ рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рдмрд╛рдж рдмрдВрдж рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ, рдЬреЛ java.lang.AutoCloseable рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП:
class Resource implements AutoCloseable {
@Override
public void close() throws Exception {}
}
- рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдмрдВрдж рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рд╕рдВрд╕рд╛рдзрди рдХреЗ рд╕рд╛рде рдПрдХ рдирд┐рд░реНрдорд╛рдг рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдмрд┐рдирд╛ рдХрд┐рд╕реА рдкрдХрдбрд╝ рдФрд░ рдЕрдВрдд рдореЗрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ:
try (Resource resource = new Resource()) {
throw new Exception();
}
- рдЪрд░ рдкреНрд░рдХрд╛рд░ рдХреЗ рддрд░реНрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рддрд░реАрдХреЛрдВ рдФрд░ рдирд┐рд░реНрдорд╛рдгрдХрд░реНрддрд╛рдУрдВ рдореЗрдВ, рдПрдХ рдЕрдирд┐рдпрдВрддреНрд░рд┐рдд рдпрд╛ рдЕрд╕реБрд░рдХреНрд╖рд┐рдд рдСрдкрд░реЗрд╢рди рдЪреЗрддрд╛рд╡рдиреА рдЕрдм рдЬрд╛рд░реА рдХреА рдЬрд╛рдПрдЧреА рдпрджрд┐ рд╡реЗ SafeVarargs рджреНрд╡рд╛рд░рд╛ рдПрдиреЛрдЯреЗрдЯ рдирд╣реАрдВ рдХреА рдЬрд╛рддреА рд╣реИрдВред рдЖрдк рдирд┐рд░реНрдорд╛рдгрдХрд░реНрддрд╛рдУрдВ, рдЕрдВрддрд┐рдо рдФрд░ рд╕реНрдереИрддрд┐рдХ рддрд░реАрдХреЛрдВ рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
class Coin<T> {
@SafeVarargs
public Coin(T ... args){
}
@SafeVarargs
public final void instanceMethod(T ... args){
}
@SafeVarargs
public static void staticMethod(K ... args){
}
}