当前位置: 首页 > 面试题库 >

应该如何将列表转换为它们的正确实现?

荣声
2023-03-14
问题内容

假设我使用的是我不知道其源代码的库。它具有返回List的方法,如下所示:

public List<SomeObj> getObjs() { ... }

我想知道这是否是个好主意:

ArrayList<SomeObj> objs = (ArrayList<SomeObj>) getObjs();

例如,如果getObjs()中List的具体实现是a,LinkedList那么是否会存在某种类型的差异?


问题答案:

不,这不是一个好主意。List除非出于某种原因您需要从中执行特定操作,否则应始终使用接口()声明列表变量ArrayList
另外,如果您这样做,则需要确保返回的列表是ArrayList。在这种情况下,的承诺合同getObjs()只是返回类型是的某种类型List,因此您不应该承担其他任何责任。即使List现在返回的是ArrayList,也没有什么可以阻止的实现者getObjs()以后更改List返回的类型,这将破坏您的代码。



 类似资料:
  • 我对字符串列表进行了一些数据转换,得到了一个列表,其中左表示错误,右表示成功转换的项。 我将结果划分为: 做了一些错误处理后,我想返回有效项目的。这意味着,返回所有右元素的值。由于分区,我已经知道项目的所有元素。我想出了五种可能的方法。但是易读性和性能最好的是什么?在Scala中有没有惯用的方法?

  • 问题内容: 我正在从事Spring MVC项目。我正在使用Hibernate。我想将AJAX与jQuery结合使用,以从Spring Controller中获取一些JSON。不幸的是,当我在应用程序中实现方法时,出现了一个错误: 我必须使用哪种适配器以及以哪种方式使用?该方法的最后一行发生了错误: 这是我在Spring MVC项目中与Hibernate一起使用的班级: 编辑 我想知道:我的对象是代

  • 问题内容: 我是Python的新手,需要将列表转换为字典。我知道我们可以将元组列表转换为字典。 这是输入列表: 并且我想将此列表转换为元组列表(或直接转换为字典),如下所示: 我们如何在Python中轻松做到这一点? 问题答案: 您想一次将三个项目分组吗? 您想一次分组N个项目吗?

  • 我是格森的新手。我需要将下面的JSON响应转换成一个列表。 JSON响应: 我有一门课要教数据 账户JAVA 当我对我的班级做出回应时,我得到了: 现在我需要将这两个值放入

  • 鉴于我有一个有效的avro模式,如下所示: } 和Json数组,如下所示: ] 将json数组转换为Avro GenericRecord列表的最佳有效方法是什么? 我有以下代码,将一个json对象转换为一个GenericRecord

  • 问题内容: 我正在从Apache Collections 库中使用。我想对这些值进行排序。 我的方法是使用以下方法检索一个值: 这自然工作正常。 主要问题: 现在,我想知道如何将/转换(不确定哪个是正确的)转换为一个,以便可以对其进行排序? 然后,我打算遍历已排序的对象,该对象应该是有序的,并使用迭代器将位于的列表上的位置从()获取适当的键。 问题答案: 就像Erel Segal Halevi在下