当前位置: 首页 > 知识库问答 >
问题:

Arrays.asList(“”) 返回列表接口,在这种情况下如何创建对象?[重复]

谢运良
2023-03-14

我知道不能从这样的接口创建对象:

List list2 = new List();  // error.

当我使用 Arrays.asList() 时,我很困惑,因为这个函数返回 List,并且以下代码完美运行:

List list1 = Arrays.asList("a","b","c");  // works perfectly

这个等式的右边返回列表。那么代码就变成了List List 1 = new List();这怎么可能,这段代码是如何工作的虽然右边返回了一个接口,但我不明白。你能解释一下吗?预先感谢

共有3个答案

汲睿
2023-03-14

问题是< code>List是一个接口,而不是一个类。Java下只能实例化类,不能实例化接口。所以你要么需要创建一个实现< code>List的新类型(例如< code>ArrayList或者< code>LinkedList List List 2 = new ArrayList();)或者您可以像以前一样通过调用创建列表的方法来获取列表。

暴乐邦
2023-03-14

列表是一个“界面”。您不能从接口创建新实例(通过new…),您需要一个“真实”类。Arrays.asList是一个返回对象的方法。

对于第一个代码,您必须执行以下操作:。。。

< code > List List 2 = new ArrayList();

ArrayList是一个实现List接口的类。但很抱歉,我担心您需要参考一些基本的Java和OOP教程,以了解什么是类、接口、对象等,因为这里不适合这样做。

龙高歌
2023-03-14

Arrays.asList(...)返回一个新的数组列表。

由于多态性,它可以声明它返回一个 List,然后返回实现 List 接口的任何内容。数组列表是一个列表,因此可以返回。

额外注意:asList正在使用的ArrayList实际上是作为一个匿名类在Arrays类中创建的,它扩展了ArrayList类的功能,以创建一个接受本机数组的构造函数。

 类似资料:
  • 问题内容: 在执行简单程序时,我注意到了这个问题。 编译错误返回为。但是在Java中是不允许的,为什么会出现这种编译错误? 我没有在这里问关于自动装箱的问题,我只是想知道如何返回。 asList的实现是 因此,将int []视为T才是这种情况的原因。 问题答案: 中的基础int没有自动自动装箱。 实际上是一个对象,而不是原始对象。 在这里返回。确实是无效的语法。 您可以使用: List examp

  • 我在一个DB中有两个表(和),它们每个都有一个称为的相互列。 我当前使用以下代码仅从中导入一些数据(,): 如果我也想从导入数据(例如,名为和的列),那么我应该向该代码添加什么? 我的目标是拥有这些钥匙: 编辑: 编辑2: 仍然得到一个错误:

  • 这是我的建筑。格雷德尔: 我试图找出问题所在,使用以下代码来分析问题: 结果是:

  • 我在使用fs.readfile进行同步时遇到了一个问题,他们没有在第一次初始化,如果我再次尝试请求,那么我就有结果了。我知道我可以用promise和我从Kriskowal找到一些有用的东西。我试过但没有成功。我不太明白如何实施它。如果有人能帮忙,我将永远感激。 代码:

  • 事件处理程序添加到GameGui.java类的GridPane中,从第82行开始。 基本上,我试图找到您在网格窗格中拖动这个对象的任何节点的索引。通过将SetonMouseEnter应用到gridpane中的每个节点,我可以在不拖动的情况下完成这一任务,但是当我试图利用SetonMouseDragEnter时,我什么也没有得到。 有人有办法让这个工作吗? 这些是我应用于GridPane中节点的事件

  • 问题内容: 如何在Python中创建对象(类实例)列表? 还是这是不良设计的结果?我需要这个原因是因为我有不同的对象,并且需要在以后的阶段中处理它们,所以我将继续将它们添加到列表中,然后再调用它们。 问题答案: 存储对象实例列表非常简单

  • 在这种情况下是否可以避免ArrayIndexOutOfBoundsException??

  • 问题内容: 我是T-SQL命令的新手,所以我在SQL逻辑中找到了一个可以使用它并想要对其进行测试的地方,但无法弄清楚我应该如何使用它: 请提出正确的用法。谢谢! 问题答案: 您在帮助中了吗?这是一个简单的例子: