List<EntityFieldDefine> fields = new ArrayList<>();和List<EntityFieldDefine> fields = new ArrayList();用起来有什么不同
时间: 2024-04-18 07:29:53 浏览: 156
`List<EntityFieldDefine> fields = new ArrayList<>();` 和 `List<EntityFieldDefine> fields = new ArrayList();` 在功能上是相同的,都是创建了一个空的 `ArrayList` 对象来存储 `EntityFieldDefine` 类型的元素。
唯一的区别在于 Java 7 之前的版本不支持使用 `<>` 语法进行类型推断,需要显式地指定类型参数。因此,如果你在 Java 7 或更早的版本中使用 `List<EntityFieldDefine> fields = new ArrayList<>();` 这样的语法,编译器将无法推断出 `ArrayList` 的类型参数,导致编译错误。
而在 Java 8 及更高版本中,引入了钻石操作符 `<>`,可以通过类型推断自动推断出类型参数。因此,你可以使用 `List<EntityFieldDefine> fields = new ArrayList<>();` 这样的语法,编译器会根据变量声明的类型自动推断出 `ArrayList` 的类型参数为 `EntityFieldDefine`。
总结来说,使用 `List<EntityFieldDefine> fields = new ArrayList<>();` 可以使代码更加简洁,并且兼容 Java 8 及更高版本。但如果你需要向下兼容到 Java 7 或更早的版本,那么应该使用 `List<EntityFieldDefine> fields = new ArrayList<EntityFieldDefine>();` 来显式指定类型参数。
阅读全文
相关推荐


















