这两个代码片段之间有区别吗?如果有,那又如何? [复制]

     2023-02-26     169

关键词:

【中文标题】这两个代码片段之间有区别吗?如果有,那又如何? [复制]【英文标题】:Is there a difference between these two code snippets, and if so what? [duplicate] 【发布时间】:2016-02-26 03:26:52 【问题描述】:

所以我似乎无法弄清楚这两个代码 sn-ps 之间的区别,或者什么时候更喜欢另一个。 片段#1

  public static void main(String[] args) 
           List testList = new ArrayList();
           testList.add(new Integer(6));

           String string = (String) testList.get(0);
     

片段 #2

public static void main(String[] args) 
       ArrayList testList = new ArrayList();
       testList.add(new Integer(6));

       String string = (String) testList.get(0);
   

我的解释是在 sn-p 1 中,一个名为 testList 的列表被分配给一个 ArrayList 对象。在 sn-p 2 中,一个名为 testList 的 ArrayList 被分配给一个 ArrayList 对象。然而,这对我来说没有意义。

附带问题:两者之一是首选标准吗?

【问题讨论】:

我认为这个问题可能有一些重复 两者都很糟糕,因为您使用的是原始类型而不是泛型,并且您试图将 Integer 读取为 String(泛型会保护您免受此错误的影响)。无论如何,首先 sn-p 会好一点,因为您正在接口上编程(我们使用 List 作为类型或 testList 接口,因为我们并不真正关心该列表是如何实现的,这使我们可以灵活地稍后更改该实现,如果我们想要)。 查看article了解更多信息。 接口,除其他外,让您在未来有更大的灵活性(如果您需要更改您正在处理的集合类型) 非常感谢您提供的文章链接,在几分钟的阅读中消除了很多困惑。很棒的文章。 @MaxZoom 【参考方案1】:

第一个sn-p使用接口List类型,第二个使用对象类型ArrayList

除非你真的需要来自ArrayList的任何方法,否则你应该使用接口类型来防止类型混淆。

【讨论】:

【参考方案2】:

List 是一个接口。 ArrayList 实现 List。因此,从功能上讲,两个 sn-ps 的工作方式相同。

【讨论】:

啊,Java开发者有偏好哪个是标准实现吗?

junit测试:never()和times之间的区别(代码片段)

...果我把它写成:verify(mockRepository,times(0)).save(any(User.class));两个测试都显示save方法没有调用。(如果我错了,请纠正我)这两者有什么区别吗?答案javadocofthenevermethod说:Aliastotimes(0),seeMockito.times(int)。所以never()只是times(0)的捷径... 查看详情

[,] 2d 数组和 [][] 数组之间有啥功能区别吗? [复制]

...?[复制]【发布时间】:2016-11-1121:28:51【问题描述】:这两个数组可以相互通信还是它们需要是相同的类型,即[,]只能与其他[,]数组通信。或者如果我有:char 查看详情

这两个代码片段有啥区别?

】这两个代码片段有啥区别?【英文标题】:Whatisthedifferencebetweenthese2snippetsofcode?这两个代码片段有什么区别?【发布时间】:2021-01-0605:48:11【问题描述】:两个sn-ps都将http重定向到https,但一个适用于AWSCloudfront分发,而另一个... 查看详情

在递归函数中使用while循环和if语句之间有区别吗?(代码片段)

...对于第二个代码,输出为ABCDEFGHIJKLMNOPQRSTUVWXYZ。我希望这两个输出都是一样的。答案使用c='Z'调用第一个版本时会发生什么:ie:alpha('Z')?在以下代码中:while(c<='Z')//Hereyouwillloopforeverbecause 查看详情

身份验证和授权之间有区别吗?

...on?【发布时间】:2011-09-1602:35:19【问题描述】:我看到这两个术语经常出现(特别是在基于Web的场景中,但我想不限于此),我想知道是否有区别。在我看来,它们都意味着你可以做你正在做的事情。那么这只是一个命名法,还... 查看详情

example.com,www.example.com和example.com/之间有什么区别?(代码片段)

...m是example.com的子域。所以我认为这意味着假设我可以在这两个不同的网址中有两个不同的网站,尽管不推荐。我在这里错过了什么吗?在example.com和example.com/之间,如果你不进行301重定向,那么example.com/会显示一个页面目录吗?... 查看详情

这两个c ++代码片段有啥区别

】这两个c++代码片段有啥区别【英文标题】:Whatisthedifferencebetweenthesetwosnippetsofc++code这两个c++代码片段有什么区别【发布时间】:2021-12-1709:19:36【问题描述】:这些是我对codeforces问题的答案,我不知道为什么第一个sn-p给出了错... 查看详情

@buffer.memory^和buffer.memory有什么区别?(代码片段)

...mory=指针),@Buffer.Memory^和Buffer.Memory有什么区别?答案这两个表达式之间没有区别。您的问题可以简化为询问这些表达式之间的区别P@P^其中P的类型为Pointer。应该清楚的是,这两个表达式是等价的。 查看详情

assemblyversion,assemblyfileversion和assemblyinformationalversion之间有什么区别?(代码片段)

问题:Therearethreeassemblyversionattributes. 有三个程序集版本属性。 Whataredifferences? 有什么区别? IsitokifIuse AssemblyVersion andignoretherest? 如果我使用AssemblyVersion并忽略其余部分,这样可以吗?MS 查看详情

tostring()和tolocalestring()有什么区别(代码片段)

偶然之间用到这两个方法然后在数字转换成字符串的时候,并没有感觉这两个方法有什么区别,如下:12345678var e=123  e.toString()"123" e.toLocaleString()"123" 是吧,并没有什么区别,上面的e是一个三位数的数字,那么... 查看详情

这两个类语句有啥区别?

】这两个类语句有啥区别?【英文标题】:Whatisthedifferencebetweenbothoftheseclassstatements?这两个类语句有什么区别?【发布时间】:2017-07-0421:49:11【问题描述】:如果我的问题的标题过于模糊,我很抱歉,但我不知道如何轻松描述我... 查看详情

当唯一的区别是标签时,如何在两个s3桶之间同步对象(代码片段)

单个帐户中有两个存储桶。两个桶都很大(几TB)。几天前铲斗已同步,但最近源桶中的一些文件被赋予了一个标签(准确地说是两个标签)。有没有人知道重新同步存储桶的方法,以便目标存储桶中的对象包括标记相同?awss3sy... 查看详情

使方法同步或在方法中添加同步块之间有区别吗? [复制]

...?[duplicate]【发布时间】:2013-01-3118:01:51【问题描述】:这两个代码块的行为是否相同?您可以假设这些运行方法是从线程中调用的。publicsynchronizedv 查看详情

两个列表之间的差异(代码片段)

我有两个填充了CustomsObjects的通用列表。我需要在第三个列表中检索这两个列表(第一个没有第二个项目的项目)之间的差异。我在想使用.Except()是一个好主意,但我不知道如何使用这个..帮助!答案使用Except是正确的方法。如... 查看详情

where 子句和使用关联对象来提高性能之间有啥区别吗

...:例如,我们在产品和订单之间建立了关联。下面写的这两个查询之间会有什么区别吗?你在执行时间和性能方面都 查看详情

贫血域模型和活动记录之间的区别

】贫血域模型和活动记录之间的区别【英文标题】:differencebetweenanemicdomainmodelandactiverecord【发布时间】:2014-04-1916:47:12【问题描述】:基于this的回答,我发现贫血领域模型背后的相同想法正在积极记录中!在活动记录模式中,... 查看详情

识别和非识别关系之间有什么区别?(代码片段)

我无法完全掌握差异。你能描述这两个概念并使用现实世界的例子吗?答案标识关系是指子表中存在的行取决于父表中的行。这可能会令人困惑,因为现在通常的做法是为子表创建伪代码,但不要将外键设置为子代主键的父部分... 查看详情

效率 ?这些代码之间有啥区别吗? [复制]

】效率?这些代码之间有啥区别吗?[复制]【英文标题】:Efficiency?anydifferencebetweenthesecodes?[duplicate]效率?这些代码之间有什么区别吗?[复制]【发布时间】:2012-05-2200:27:23【问题描述】:可能重复:Isthereadifferencebetweeni==0and0==i?... 查看详情