符号后的确切含义是什么?
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) {...}
};
答案 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>();