Java 7新特性的代码实例
下面列出的大多数例子都是来源于Joe Wright博客中(Java7中的新语言特性)的高水平文章。
集合的语言支持
在这里我们主要讲的是,当创建一个List、Set或者Map的时候,你怎样尽量少写代码。你不必先实例化Object,然后再给Collection添加元素。你现在只需1行代码就可以完成。
List list = ["item"];
String item = list[0];
Set set = {"item"};
Map map = {"key" : 1};
int value = map["key"];
Set set = {"item"};
Map map = {"key" : 1};
int value = map["key"];
自动资源管理
由于try / catch语句的原因,冗长的代码令人非常头痛。你或许会喜欢这个全新的特性。
实际上,下面这些代码:
BufferedReader br = new BufferedReader(new FileReader(path));
try {
return br.readLine();
}
finally
{
br.close();
}
try {
return br.readLine();
}
finally
{
br.close();
}
转变成了如下这种形式:
try (BufferedReader br = new BufferedReader(new FileReader(path)) {
return br.readLine();
}
return br.readLine();
}
通用实例创建来改进类型推断(diamond)
当你把对象的接口申明指定成范型后,你在对象实例化时不得不再指定一次。现在,你不必如此了,因为你可以这样:
Map> map = new HashMap<>();
数值文字的加强
我不敢肯定这个对大多数人都有用。你可以这样做:
int billion = 1_000_000_000;
允许在switch中使用字符串
这个无需解释,其意思很明确。
String availability = "available";
switch(availability)
{
case "available":
//code
break;
case "unavailable":
//code
break;
case "merged":
//code
default:
//code
break;
}
switch(availability)
{
case "available":
//code
break;
case "unavailable":
//code
break;
case "merged":
//code
default:
//code
break;
}
二进制文字
你可以使用前缀0b创建二进制文字
int binary = 0b1001_1001;
以上这些就是Java1.7的代码实例。如果有人能给我指出还有哪些没有包含进去,那就更好了。我敢肯定,已经有其他的开发人员对此进行了关注。