Java 对象定义 shorthand 还是快捷方式?
Java object definition shorthand or shortcuts?
有没有更快的方法来实例化 Java 中的对象,而不必重新键入 class?例如,看看这个实例化的大部头:
HashMap<Integer, ArrayList<ActivityRecord>> days = new HashMap<Integer, ArrayList<ActivityRecord>>();
我喜欢 shorthand 符合以下内容的:
HashMap<Integer, ArrayList<ActivityRecord>> days = new();
或者,我也很乐意使用 Eclipse 快捷方式自动完成实例化以使用无参数构造函数。
如果您使用的是 Java 7 及更高版本,您可以使用 diamond operator:
HashMap<Integer, ArrayList<ActivityRecord>> days = new HashMap<>();
此外,在声明变量时,最好尽可能使用接口而不是具体 类。所以上面的内容实际上是:
Map<Integer, List<ActivityRecord>> days = new HashMap<>();
如果您使用的是 Java 6,您可以使用 Google Guava:
Map<Integer, List<ActivityRecord>> days = Maps.newHashMap();
如需进一步阅读,您可以查看 Type Inference documentation.
中有关 泛型 类 的类型推断和实例化部分
您应该 Java 7 diamond operator 因为您通常会针对界面进行编码,而不是对参考和实例使用相同的 class。
Map<Integer, ArrayList<ActivityRecord>> days = new HashMap<>();
如果您使用的是 Java 6(或更早版本),那么 Google Guava 会派上用场
Map<Integer, List<ActivityRecord>> days = Maps.newHashMap();
有没有更快的方法来实例化 Java 中的对象,而不必重新键入 class?例如,看看这个实例化的大部头:
HashMap<Integer, ArrayList<ActivityRecord>> days = new HashMap<Integer, ArrayList<ActivityRecord>>();
我喜欢 shorthand 符合以下内容的:
HashMap<Integer, ArrayList<ActivityRecord>> days = new();
或者,我也很乐意使用 Eclipse 快捷方式自动完成实例化以使用无参数构造函数。
如果您使用的是 Java 7 及更高版本,您可以使用 diamond operator:
HashMap<Integer, ArrayList<ActivityRecord>> days = new HashMap<>();
此外,在声明变量时,最好尽可能使用接口而不是具体 类。所以上面的内容实际上是:
Map<Integer, List<ActivityRecord>> days = new HashMap<>();
如果您使用的是 Java 6,您可以使用 Google Guava:
Map<Integer, List<ActivityRecord>> days = Maps.newHashMap();
如需进一步阅读,您可以查看 Type Inference documentation.
中有关 泛型 类 的类型推断和实例化部分您应该 Java 7 diamond operator 因为您通常会针对界面进行编码,而不是对参考和实例使用相同的 class。
Map<Integer, ArrayList<ActivityRecord>> days = new HashMap<>();
如果您使用的是 Java 6(或更早版本),那么 Google Guava 会派上用场
Map<Integer, List<ActivityRecord>> days = Maps.newHashMap();