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的新功能包括在内。