Java对象定义速记还是快捷方式?
有没有一种更快的方法可以在Java中实例化对象,而不必重新键入类?例如,请看以下例示:Java对象定义速记还是快捷方式?,java,eclipse,guava,diamond-operator,Java,Eclipse,Guava,Diamond Operator,有没有一种更快的方法可以在Java中实例化对象,而不必重新键入类?例如,请看以下例示: HashMap<Integer, ArrayList<ActivityRecord>> days = new HashMap<Integer, ArrayList<ActivityRecord>>(); HashMap days=newhashmap(); 我想要一个大致如下的速记: HashMap<Integer, ArrayList<Acti
HashMap<Integer, ArrayList<ActivityRecord>> days = new HashMap<Integer, ArrayList<ActivityRecord>>();
HashMap days=newhashmap();
我想要一个大致如下的速记:
HashMap<Integer, ArrayList<ActivityRecord>> days = new();
HashMap days=new();
或者,我也很乐意使用一个Eclipse快捷方式来自动完成实例化,以使用无参数构造函数。如果您使用的是Java 7及以上版本,则可以使用:
HashMap您应该使用Java 7,因为您通常会对接口进行编码,而不是对引用和实例使用相同的类
Map<Integer, ArrayList<ActivityRecord>> days = new HashMap<>();
Map days=newhashmap();
如果您使用的是Java 6(或更早版本),那么谷歌番石榴就派上了用场
Map<Integer, List<ActivityRecord>> days = Maps.newHashMap();
Map days=Maps.newHashMap();
通常,您会将变量类型声明为接口
类型,但会使用实际类实例化它,例如Map=new HashMap()代码>。所以等式的右边需要实例化类。@pbabcdefp确实更新了我的评论。喜欢谷歌番石榴提示!(我必须将其保存在J6中,因此它工作得很好)
Map<Integer, List<ActivityRecord>> days = Maps.newHashMap();
Map<Integer, ArrayList<ActivityRecord>> days = new HashMap<>();
Map<Integer, List<ActivityRecord>> days = Maps.newHashMap();