Thursday, February 24, 2011

Project Coin Examples with JDK 7 Developer Preview

Mark Reinhold announced availability of the first JDK 7 developer preview today. Reason enough for me to give some of the Project Coin features a shot. I won't get into details here, but instead just show some quick examples. Most of them are self-explanatory anyway.

Source code is also available via github.

Strings in switch

final String str = "foo";

switch (str) {
    case "foo":
        System.out.println("mooh");
        break;
    case "bar":
        System.out.println("miau");
        break;
    default:
        break;
}

Binary integral literals and underscores in numeric literals

final int large = 1_000_000;
System.out.println(large);
   
final int binary = 0b1011;
System.out.println(binary);

Multi-catch and more precise rethrow

class ExA extends Exception {}
class ExB extends Exception {}

public void testMultiCatch() {

    final int a = 0;
        
    try {
        if (a == 0) {
            throw new ExA();
        }
        if (a == 1) {
            throw new ExB();
        }
    } catch (ExA|ExB ex) {
        System.out.println(ex.getClass() + 
             " was thrown and caught");
    }

}

public void testReThrow() throws ExB {

    final int a = 0;

    try {
        if (a == 0) {
            throw new ExA();
        }
        if (a == 1) {
            throw new ExB();
        }
    } catch (final ExA exa) {
        System.out.println("Exa was caught");
    } catch (final Exception ex) {
        System.out.println(ex.getClass() + 
            " was thrown, caught and rethrown");
        throw ex;
    }

}

Improved type inference for generic instance creation (diamond)

final List<String> list = new ArrayList<>();
list.add("Foo");
        
System.out.println(list);

try-with-resources statement

try (final BufferedReader br = new BufferedReader(new FileReader("./TestAutomaticResourceManagement.java"))) {

   String line;
   while ((line = br.readLine()) != null) {
       System.out.println(line);
   }

} catch (final IOException e) {
}

2 comments:

make a facebook applications said...

wow
in how much timing duration did you complete this project ?
or is it still running ?

ArrayList Java Example said...

Good one man.Project coin is good enhancement in programmers armory for daily task. Out of all features
automatic resource management and fork join framework in java7 is my favorite with little good on multiple catch block for exceptions.