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

例如,Scala的存在类型和Java的通配符之间的区别?

邓卓
2023-03-14
问题内容

比Stack Overflow问题更具体一点
什么是存在类型? ,最好有一些说明性的示例,Scala的 存在类型 和Java的 通配符有 什么区别?

到目前为止,在我所看到的所有内容中,它们似乎都相当。

一些参考。
马丁•奥德斯基(
Martin
Odersky)提到他们
; Google 对我的问题影响最大

MO:
最初的通配符设计…受存在类型的启发。实际上,原始论文对存在类型进行了编码。但是,当实际的最终设计用Java发布时,这种连接就失去了一点点


问题答案:

这是Martin Odersky在Scala用户邮件列表上的答案:

原始的Java通配符类型(如Igarashi和Viroli在ECOOP论文中所述)确实只是存在性类型的简写。有人告诉我,我在FOOL
‘05上有关Wild
FJ的文章中读到,通配符的最终版本与存在类型有一些细微的差异。我不知道确切的意义(它们的形式主义与经典的存在性类型相去甚远,无法找出区别),但是也许仔细阅读Wild
FJ论文会对此有所启发。

因此,似乎Scala存在类型和Java通配符是等效的



 类似资料:
  • 问题内容: 我是Generic的新手,我的问题是:两个函数之间有什么区别: 功能1: 功能2: 问题答案: 第一个签名说:是一个ES列表。 第二个签名说:是某种类型的实例的,但是我们不知道类型。 当我们尝试更改方法时,区别变得明显,因此它需要第二个参数,该参数应添加到方法内部的列表中: 第一个效果很好。而且你不能将第二个参数更改为可以实际编译的任何参数。 实际上,我发现了一个更好的区别说明: 一个

  • 问题内容: 有人可以解释一下这两种方法之间的区别吗?都一样吗 就解决方案而言,它们在我看来确实相同。如果它们相同,为什么需要? 方法1,无界 方法2,无界: 方法1,有界 方法2,有界: 问题答案: 它们相同,因为它们接受相同的参数类型。 但是,使用(或其他任何一种)标识类型可以让您在其他地方引用该类型。 编辑:示例: 您无限制的示例未充分利用参数化类型的功能。你有: 这对于打印字符串表示的示例就

  • 有人能解释一下这两种方法的区别吗?它们是一样的吗?在我看来,它们解决的问题是一样的。如果它们相同,为什么需要<代码> ? 方法#1,无界 方法#2,无界: 方法#1,有界 方法#2,有界:

  • 问题内容: 斯卡拉 在Scala中,哪里可以观察到类和类型之间的差异?为什么这种区别很重要? 在编程Scala时,它只是从语言设计的角度考虑还是具有“实际”影响? 或者是根本,以“固定边界”的类型系统(,来我的心)? 爪哇 在Java中还可以识别出上面提到的许多注意事项/差异/问题? (有关语言的介绍,请参见类型和类之间的区别?。) 问题答案: 当您说“类型”时,我将假设您主要是指静态类型。但是我

  • 问题内容: 我正在阅读有关泛型的信息,但我不了解未绑定通配符的需求以及它与原始类型的区别。我读了这个问题,但仍然不清楚。在未绑定通配符的 Java教程页面中,我得到了以下两点,但我不明白第一点: 如果您正在编写可以使用该类中提供的功能实现的方法。 * 当代码在泛型类中使用不依赖于type参数的方法时。例如,或。实际上,之所以经常使用它是因为其中的大多数方法都不依赖。 有人可以用外行语言解释未绑定的

  • 问题内容: Java Generic type:之间有什么区别 根据我的理解 (1) 是具有超类“ Number”的“未知”数据类型的只读列表。我们只能读取元素,但不能添加 (2) 具有超类“ Number”的数据类型列表。我们可以 阅读并将 元素 添加 到列表中 请参见下面的代码示例 当我尝试将Integer(甚至Number对象)添加到sumOfList2时,出现错误。请在这里说明问题是什么?