什么意思是“新列表()”表示法?

时间:2015-08-27 17:53:35

标签: java collections

符号后的确切含义是什么?

List<Integer> list = new List<Integer>(){...}

我可以说我创建了一个接口List<E>的实例吗?而不是,因为我们无法在Java中创建任何接口的新实例。

下面是所有必须用这种表示法覆盖的方法。

但我不清楚究竟必须覆盖哪些方法。它们不是来自List<E>或列表的超级接口 - Collection<E>, Iterable<E>

的所有方法

(没有例如hashCode()方法(如果它们都是List的方法)或例如parallelStream()方法(如果它们都是List的超级接口中的继承方法))

List<Integer> list = new List<Integer>(){

        public boolean add(Integer e) {...}
        public void add(int index, Integer element) {...}
        public boolean addAll(Collection<? extends Integer> c) {...}
        public boolean addAll(int index, Collection<? extends Integer> c {...}                                 
        public void clear() {...}
        public boolean contains(Object o) {...}
        public boolean containsAll(Collection<?> c) {...}
        public Integer get(int index) {...}
        public int indexOf(Object o) {...}
        public boolean isEmpty() {...}
        public Iterator<Integer> iterator() {...}
        public int lastIndexOf(Object o) {...}
        public ListIterator<Integer> listIterator() {...}
        public ListIterator<Integer> listIterator(int index) {...}
        public boolean remove(Object o) {}
        public Integer remove(int index) {...}
        public boolean removeAll(Collection<?> c) {...}
        public boolean retainAll(Collection<?> c) {...}
        public Integer set(int index, Integer element) {...}
        public int size() {...}
        public List<Integer> subList(int fromIndex, int toIndex) {...}
        public Object[] toArray() {...}
        public <T> T[] toArray(T[] a) {...} 

};

2 个答案:

答案 0 :(得分:6)

List<Integer>是一个注释,用于创建实现List接口的匿名类的实例。

您必须实现的方法是在Object接口或其祖先接口中没有实现的所有方法。 hashCode()类的所有方法(例如parallelStream())在所有接口中都有隐式实现。如果您使用Java 8,其他方法可能有默认实现(我假设@sheet = "sheets/_#{sheet.name}.html.erb"的情况如此)。

答案 1 :(得分:0)

您是否尝试创建已知值列表?在这种情况下,您需要List的实现,如下所示:

  List<Integer> list = new ArrayList<Integer>(Arrays.asList(1, 2, 3));

要创建一个空列表,它只是:

  List<Integer> list = new ArrayList<Integer>();