有没有办法创建一个列表并添加一个元素并在一个语句中返回结果列表?
return new ArrayList<Email>().add(email);
由于显而易见的原因,上述方法不起作用。谢谢。
最佳答案
固定尺寸解决方案
尝试:
return Arrays.asList(email);
请注意,返回的列表将是固定大小的。引用自 javadoc :
Returns a fixed-size list backed by the specified array. This method acts as bridge between array-based and collection-based APIs, in combination with
Collection.toArray()
. The returned list is serializable and implementsRandomAccess
.
因此您可以更改返回的 List
中的元素,但不能执行更改其大小的操作。
看这个例子:
String email = "as@as.com";
List<String> list = Arrays.asList(email);
list.set(0, "bs@bs.com"); // OK
list.clear(); // throws UnsupportedOperationException
list.add("cc@cc.com"); // throws UnsupportedOperationException
通用解决方案
如果您需要使返回的列表完全可修改,您仍然可以在一行中完成:
return new ArrayList<>(Arrays.asList(email));
所以基本上只需创建一个新的 ArrayList
使用 Arrays.asList()
创建的固定大小列表进行初始化。虽然这对于如何创建具有一个元素的 List
并不是真正的惯用方法,但它解决了您的问题。
关于java - 创建一个列表,添加一个元素并在一条语句中将其返回给调用者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26847696/