EG要创建一个字符串的ArrayList,我们必须做类似的事情
List<String> list = new ArrayList<String>();
Run Code Online (Sandbox Code Playgroud)
而它应该能够推断构造函数的参数类型,以便我们只需要键入
List<String> list = new ArrayList();
Run Code Online (Sandbox Code Playgroud)
为什么不能以与通用方法的类型参数相同的方式输入类型.
Rob*_*anu 22
这是Java 7的改进,也称为钻石操作员.语法将是:
List<String> strings = new ArrayList<>();
Run Code Online (Sandbox Code Playgroud)
被接受包含在Project Coin中的官方提案是改进的通用实例创建类型推断
根据RémiForax的说法,这一变化已经存在于多变量库中.
正如其他人所说,这是Java 7的列表.但是,我想指出,如果您乐意使用静态导入,Google Collections Library已经为各种集合提供了支持.例如,我经常编写如下代码:
List<String> list = newArrayList();
Run Code Online (Sandbox Code Playgroud)
您只需要静态导入并删除之间的空格new和ArrayList():)
(静态导入将是Lists类,顺便说一句.地图有类似的方法等)