欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  资讯频道

Java 7的主要变化

程序员文章站 2022-04-23 19:26:37
...

Devoxx 大会结束在几天前结束了,一位与会者对此次大会的重要内容进行了总结,他提到Java 7的主要变化如下:

 

1.对collections的支持

 

List<String> list = new ArrayList<String>();
list.add("item");
String item = list.get(0);

Set<String> set = new HashSet<String>();
set.add("item");

Map<String, Integer> map = new HashMap<String, Integer>();
map.put("key", 1);
int value = map.get("key");

 现在你还可以:

 

List<String> list = ["item"];
String item = list[0];

Set<String> set = {"item"};

Map<String, Integer> map = {"key" : 1};
int value = map["key"];

 

 

2.自动资源管理

 

BufferedReader br = new BufferedReader(new FileReader(path));
try {
   return br.readLine();
} finally {
   br.close();
}

 becomes:

 

try (BufferedReader br = new BufferedReader(new FileReader(path)) {
   return br.readLine();
}

You can declare more than one resource to close:

try (
   InputStream in = new FileInputStream(src);
   OutputStream out = new FileOutputStream(dest))
{
 // code
}

 

3.对通用实例创建(diamond)的type引用进行了改进

 

 

Map<String, List<String>> anagrams = new HashMap<String, List<String>>();

 becomes:

 

Map<String, List<String>> anagrams = new HashMap<>();

4.数值可加下划线

 

int one_million = 1_000_000;

  

5.在switch中可使用string

 

String s = ...
switch(s) {
 case "quux":
    processQuux(s);
    // fall-through

  case "foo":
  case "bar":
    processFooOrBar(s);
    break;

  case "baz":
     processBaz(s);
    // fall-through

  default:
    processDefault(s);
    break;
}

 

6.二进制文字

 

int binary = 0b1001_1001;

  

7.简化了可变参数方法的调用

 

当程序员试图使用一个不可具体化的可变参数并调用一个*varargs* (可变)方法时,编辑器会生成一个“非安全操作”的警告。详情查看

 


查看原文:http://code.joejag.com/2009/new-language-features-in-java-7/
相关标签: Java