Java钻石
示例
Java7引入了Diamond1,以删除通用类实例化周围的一些样板。使用Java7+,您可以编写:
List<String> list = new LinkedList<>();
在以前的版本中必须写的地方:
List<String> list = new LinkedList<String>();
匿名类的一个限制是,您仍然必须在实例化中提供type参数:
//这将编译:
Comparator<String> caseInsensitiveComparator = new Comparator<String>() {
@Override
public int compare(String s1, String s2) {
return s1.compareToIgnoreCase(s2);
}
};
//但这不会:
Comparator<String> caseInsensitiveComparator = new Comparator<>() {
@Override
public int compare(String s1, String s2) {
return s1.compareToIgnoreCase(s2);
}
};尽管Java7和8不支持将钻石与匿名内部类一起使用,但它将作为Java9的新功能包括在内。