Platinum Partner
java

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.

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) {
}

From http://stronglytypedblog.blogspot.com/2011/02/project-coin-examples-with-jdk-7.html

{{ tag }}, {{tag}},

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}
{{ parent.authors[0].realName || parent.author}}

{{ parent.authors[0].tagline || parent.tagline }}

{{ parent.views }} ViewsClicks
Tweet

{{parent.nComments}}