Java 7 的 7 个新的 “酷” 特性

红薯 发布于 2011/07/11 08:03
阅读 3K+
收藏 36

Java 7 即将在本月底发布了,先来看 Java 7 中的一些不错的新酷特性吧:

1. switch 中使用字符串变量

public void testStringSwitch(String direction) {
  switch (direction) {
     case "up":
	 y--;
     break;

     case "down":
	 y++;
     break;

     case "left":
	 x--;
     break;

     case "right":
	 x++;
     break;

    default:
	System.out.println("Invalid direction!");
    break;
  }
}

2. 简化泛型对象创建

// Java 7 以前版本
Map<String,Map<String,int>>m=new HashMap<String, Map<String,int>>();

// Java 7
Map<String, Map<String, int>> m = new HashMap<>();

3. 多异常处理

try {
    Class a = Class.forName("wrongClassName");
    Object instance = a.newInstance();
} catch (ClassNotFoundException | IllegalAccessException |
   InstantiationException ex) {
   System.out.println("Failed to create instance");
}

4. 资源的自动释放

try (BufferedReader in=new BufferedReader(new FileReader("test.txt")))
{
    String line = null;
    while ((line = in.readLine()) != null) {
	System.out.println(line);
    }
} catch (IOException ex) {
    ex.printStackTrace();
}

5. 文件 IO API 的改进

下面是列出一个文件中所有行并打印的方法

List<String> lines =  Files.readAllLines(
FileSystems.getDefault().getPath("test.txt"), StandardCharsets.UTF_8);

for (String line : lines) System.out.println(line);

6. 通过 invokedynamic支持非 Java 语言(详情)

7. JLayerPane (详情)

加载中
1
戴威
戴威
都是scala玩的不要了的?
0
programtic
programtic

Map<String, Map<String, int>> m = new HashMap<>(); 这种方式在google的工具集合中好像有。

貌似是把一些繁杂的写法,简化了。


0
咖啡碼農
咖啡碼農
薯条真勤快
用户已屏蔽
用户已屏蔽
薯条是机器人
0
StormFour
StormFour
资源自动释放是不是意味着不用写close了?
答复哈
答复哈
看着这么像.NET的语法呢~
烟头
烟头
@freish: 实现了某个接口的才能自动关闭,一般的文件流和网络连接、数据库连接jdk已经内置实现了 好像是AutoClose
freish
freish
@红薯: 难道是所有资源都能自动关闭?譬如数据库连接?socket连接,或者自定义的某个资源,不能这么智能吧
dargoner
dargoner
nice
穿着马甲的鸟
穿着马甲的鸟
如果是这样的话,那真的很不错。因为给内存回收的形式一样了。以前觉得很别扭的一个事情就是你在Java里头new了一个东西,不需要delete,但是你open了一个东西,却需要close。
下一页
0
everyx
everyx

@红薯 这个时间差

JoeyBlue
JoeyBlue
可以实现资源释放的必须实现autoclose和一个其他的什么接口(接口里有个close()方法),就是调用其close()方法来释放资源的
3602
3602
也得像微博一样自动刷了- - ~~~
0
xu81.com
xu81.com
switch终于支持String了,前两天还被C#的哥们鄙视之
hans汉斯
hans汉斯
重构中要去除switch和if
superking
superking
switch 用的还是比较少,也不够灵活,真如有的仁兄所说,有生之年好像都没有用过switch语句,这一点点的改动真的感觉不值一提
0
疯狂的艺术家
疯狂的艺术家
switch  可以使用字符串变量 倒是个 早该实现的功能啊,今天终于有啦。
0
oneryx
oneryx
都是不错的新特性
0
申江渔夫
申江渔夫
感觉第4条最有用~
0
blur
blur
nice!
返回顶部
顶部