2014-06-27 24 views
2

我有一个仍然使用Java 1.6的项目。在java中1.7,我能写出像他ArrayList不允许用钻石登录Java 1.6

public ASTParseUnit(final IParserSelector parserSelector) { 
    Data = new ArrayList <>(); // this is error in java 1.6 
    this.parserSelector = parserSelector; 
} 

我如何在Java中representate声明1.6形式的代码Data = new ArrayList <>();

谢谢

已解决。对不起,这是一个来自antoher手中的旧项目。 现在的代码看起来像这样

List<ReportChart> Data; 
ReportChart detailChart; 

public ASTParseUnit(final IParserSelector parserSelector) { 
    Data = new ArrayList <ReportChart>(); 
    this.parserSelector = parserSelector; 
} 
+3

通过填写适当的类型参数,也许? – awksp

回答

6

通过指定,在<>之间,什么ArrayList是的。

Data = new ArrayList <ObjectType>(); 
+2

以下链接指向Java 7中的新文档:http://radar.oreilly.com/2011/09/java7-features.html –

2

Java 7的一个优点是钻石算子。这使我们能够转换:

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

要这样:

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

aditional的到AntonH的回答,您可以使用老朋友番石榴。这允许你做:

Map<String, List<String>> anagrams = Maps.newHashMap(); 

你的情况应该是:

Data = new ArrayList <ObjectType>(); // Java 6 (AntonH example) 
Data = Lists.newArrayList();   // Guava example