在执行简单程序时,我注意到了这个问题。
int[] example = new int[10];
List<Integer> exampleList = Arrays.asList(example);// Compilation error here
编译错误返回为cannot convert from List<int[]> to List<Integer>
。但是List<int>
在Java中是不允许的,为什么会出现这种编译错误?
我没有在这里问关于自动装箱的问题,我只是想知道如何Arrays.asList
返回List<int[]>
。
asList的实现是
public static <T> List<T> asList(T... a) {
return new ArrayList<T>(a);
}
因此,将int []视为T才是这种情况的原因。
中的基础int没有自动自动装箱Arrays.asList
。
int[]
实际上是一个对象,而不是原始对象。
在这里Arrays.asList(example)
返回List<int[]>
。List<int>
确实是无效的语法。
您可以使用:
List
使用Apache Commons ArrayUtils
。
问题内容: 该方法返回的表示形式。这里返回的对象是数组支持的,但不是对象。 我正在寻找对象返回值与对象之间的差异- 一种快速的来源,可以告诉它们而无需深入研究代码。 TIA。 问题答案: 当您调用Arrays.asList时,它不会返回。它返回一个由原始源数组支持的固定大小列表。换句话说,它是使用Java的基于集合的API公开的数组的视图。 您不能向其中添加元素,也不能从中删除元素。如果您尝试从中
问题内容: 返回一个类型列表。但是List是一个接口,那么如何实例化它呢?如果尝试并实例化一个类型化的列表,我会收到一条错误消息,指出这是不可能的。 编辑 没关系,我看到了怎么回事,只是被文档混淆了片刻。 问题答案: 这是一个不应该与混淆。它是数组的包装,这意味着您进行了任何更改,更改了原始数组,并且无法添加或删除条目。通常将其与ArrayList结合使用,例如
问题内容: 返回一个类型列表。但是List是一个接口,那么如何实例化它呢?如果尝试并实例化一个类型化的列表,我会收到一条错误消息,指出这是不可能的。 编辑 没关系,我看到了怎么回事,只是被文档混淆了片刻。 问题答案: 这是一个不应该与混淆。它是数组的包装,这意味着您进行了任何更改,更改了原始数组,并且无法添加或删除条目。通常将其与ArrayList结合使用,例如
问题内容: 基本上,我想要Android中的EditText,可以在其中输入一个整数值。也许有比EditText更合适的对象了吗? 问题答案: 现在,使用。使用强制它是数字。将结果字符串转换为整数(例如)。 将来,您可能会考虑使用可用的小部件(计划在Honeycomb中使用)。
我读过这篇文章:java中arrays.aslist(array)与新arraylist (arrays.aslist(ia))之间的差异 当然,包装器上不允许一些列表操作,比如从列表中添加或删除元素,您只能读取或覆盖元素。 如果list2有List接口的引用,我期望它用Java实现List接口中包含的所有方法。https://docs.oracle.com/javase/7/docs/api/j
问题内容: 我是Java开发人员,正在学习Go。我正在为LIFO堆栈编写简单的“ pop”操作。问题是堆栈中没有值时的返回值。在Java中,我可以在肯定的情况下返回wrapper(Integer),并且在没有值的情况下返回null。从我的角度来看这很自然。 如何在Go中做类似的事情?是否有用于原语的结构包装器?我是否需要返回两个值(第二个将指示错误代码)?还是我需要抛出异常? 现在是这样的: 是好