Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用继承来模拟泛型?

如何使用继承来模拟泛型?
EN

Stack Overflow用户
提问于 2011-06-14 07:24:15
回答 3查看 112关注 0票数 2

我不知道如何使用继承来模拟泛型,我正在查阅Bertand Meyer的文章“泛型与继承”,但我仍然不理解它。我会有一个更清楚的解释。

EN

回答 3

Stack Overflow用户

发布于 2011-06-14 09:47:35

在一些编程语言中,您可以对抽象类型成员使用继承来模拟泛型。下面是一个使用scala的示例。即使你不了解scala,它也是可以理解的。

代码语言:javascript
运行
AI代码解释
复制
class Collection {
type T;
//all methods are using T for the contained type.
}

我不确定,但在c++中,类型应该是类型定义。按照这种方法,您可以通过子类型化集合并将类型T指定为A来获得包含类型为A的元素的集合:

代码语言:javascript
运行
AI代码解释
复制
class IntCollection extends Collection {
type T = Int; 
//...
}

与泛型或模板相比,这种解决方案有一些缺点,但也提供了一些好处。如果你感兴趣,可以考虑阅读这篇文章:http://www.artima.com/weblogs/viewpost.jsp?thread=270195中抽象类型成员与泛型类型参数。同样,你不需要了解scala就能理解这篇文章。编辑:仅引用一句话:至少在原则上,我们可以将每种参数化表示为一种面向对象的抽象形式。希望这能有所帮助

票数 1
EN

Stack Overflow用户

发布于 2011-06-14 19:19:51

泛型只在静态类型化语言(或具有类型提示的语言)中才需要-因为您不想失去难以获得的类型安全性。

如果您的(静态)语言没有这些特性,那么可能是时候考虑一下不同的特性了--使用继承来模拟是一种丑陋的技巧。

或者更好-考虑动态语言和测试驱动开发。你将获得更多的能力(一切都是通用的,不需要输入),测试将代表你的契约--包括具体的例子--这是即使是最好的类型安全抽象也不能做到的。(因为它是抽象的)

票数 1
EN

Stack Overflow用户

发布于 2011-06-14 07:30:03

在一般情况下,您不能这样做。这就是为什么OO语言添加了模板和泛型之类的东西。例如,在引入模板之前,所有在C++中创建通用容器的尝试都失败了,或者几乎完全无法使用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6340326

复制
相关文章
AI空谈情怀,也是要输的 | 人机辩论大战
蓝色的舞台上,正中间立着一块黑色的面板,面板上蓝色的扁圆形屏幕正在闪动,后面传出冷静而理性的女声。
量子位
2019/03/08
4170
AI空谈情怀,也是要输的 | 人机辩论大战
中环混改尚存变数 高调的TCL要上演“资本魔输”?
6月23日,上市公司TCL科技发布公告称,其已经被确认为中环集团100%股权混改的意向受让方之一,但目前交易尚在进行中,最终受让方还未确定。因此TCL科技在公告中多次提及“最终转让结果存在不确定性”,表明该结果存在变数。
刘旷
2020/06/29
2800
中环混改尚存变数 高调的TCL要上演“资本魔输”?
不讲武德的隐藏验证码
首先”隐藏验证码”就是不显示在页面,抓包可以抓到,具有和验证码一样功效的东西。它可能有一个专业的叫法,因为我不能体现我不专业所以请别纠正我。这篇文章也是我挖掘漏洞时遇到的问题,然后通过分析问题,最后解决问题的一个小经验之谈,希望能给大家带来一点思路。
用户6343818
2020/12/29
5750
不讲武德的隐藏验证码
从演进式角度看消息队列
导语 | 市面上有非常多的消息中间件,rabbitMQ、kafka、rocketMQ、pulsar、 redis等等,多得令人眼花缭乱。它们到底有什么异同,你应该选哪个?本文尝试通过技术演进的方式,以redis、kafka和 pulsar为例,逐步深入,讲讲它们架构和原理,帮助你更好地理解和学习消息队列。文章作者:刘德恩,腾讯IEG研发工程师。 一、最基础的队列 最基础的消息队列其实就是一个双端队列,我们可以用双向链表来实现,如下图所示: push_front:添加元素到队首; pop_tail:
腾讯云开发者
2021/04/13
8640
XML封装与验证消息
Document document = DocumentHelper.createDocument(); document.setXMLEncoding(ChARSET_UTF_8); Element root = document.addElement("message"); Element head = root.addElement("head"); head.addElement("field").addAttribute("name"," ").setText(""); Element bo
用户3003813
2018/09/06
6440
验证码的作用,为什么要存在验证码[通俗易懂]
1、在WEB站有时会碰到客户机恶意攻击,其中一种很常见的攻击手段就是“身份欺骗”,它通过在客户机端脚本写入一些代码,然后利用它,客户机在网站、论坛反复登录
全栈程序员站长
2022/09/06
2.3K0
WPF的消息机制(二)- WPF内部的5个窗口之隐藏消息窗口
目录 WPF的消息机制(一)-让应用程序动起来 WPF的消息机制(二)-WPF内部的5个窗口 (1)隐藏消息窗口 (2)处理激活和关闭的消息的窗口和系统资源通知窗口 (3)用于用户交互的可见窗口 (4)用于UI窗口绘制的可见窗口 WPF的消息机制(三)-WPF输入事件的来源 WPF的消息机制(四)-WPF中UI的更新 WPF内部的5个窗口 对于Windows系统来说,它是一个消息系统,消息系统的核心就是窗口。对于WPF来说也是如此。那么WPF内部为什么需要窗口,又存在哪些窗口呢? 在上一篇,我们频繁的提及“
葡萄城控件
2018/01/10
2K0
WPF的消息机制(二)- WPF内部的5个窗口之隐藏消息窗口
从技术角度看验证码是什么?
俗话说得好,“常在网上走,哪有不验证”。我们爱也好恨也罢,每天谁不抓耳挠腮输入几个验证码呢?
问题先森
2020/07/21
8920
输验证码输到崩溃?教你15分钟黑掉全球最流行的验证码插件
大数据文摘作品 编译:Katrine Ren、朝夕、钱天培 验证码这种东西真的是反人类。虽然它在保证账号安全、反作弊以及反广告有着至关重要的作用,但对于普通用户来说,输验证码很多时候实在是让人抓狂。 文摘菌18岁的时候帮朋友刷QQ空间留言就天天和验证码作斗争,前几天传一个视频又创下了连续7次输错验证码的记录。不过好在文摘菌最近发现,用机器学习破解简单验证码已经是妥妥的小事了。 今天,文摘菌就带来了一个15分钟黑掉世界上最受欢迎的验证码插件的小教程。欢迎开启新年第一黑。 先给大家介绍一下今天我们要黑的验证
企鹅号小编
2018/01/09
9560
输验证码输到崩溃?教你15分钟黑掉全球最流行的验证码插件
为什么要选择Vim编辑器
基本上来说,你应该尽可能少的呆在插入模式里面,因为在插入模式里面 VIM 就像一个“哑巴”编辑器一样。很多新手都会一直呆在插入模式里面,因为这样易于使用。但 VIM 的强大之处在于他的命令模式!你会发现,在你越来越了解 VIM 之后,你就会花越来越少的时间使用插入模式了。
杨永贞
2020/08/04
1.4K0
为什么要选择Vim编辑器
写入时复制(CopyOnWrite)
写入时复制(CopyOnWrite,简称COW)思想是计算机程序设计领域中的一种通用优化策略。其核心思想是,如果有多个调用者(Callers)同时访问相同的资源(如内存或者是磁盘上的数据存储),他们会共同获取相同的指针指向相同的资源,直到某个调用者修改资源内容时,系统才会真正复制一份专用副本(private copy)给该调用者,而其他调用者所见到的最初的资源仍然保持不变。这过程对其他的调用者都是透明的(transparently)。此做法主要的优点是如果调用者没有修改资源,就不会有副本(private copy)被创建,因此多个调用者只是读取操作时可以共享同一份资源。
JMCui
2020/03/04
9100
WPF 的 Dispatcher 为什么要创建一个隐藏窗口?
在深入了解 WPF Dispatcher 的工作原理(Invoke/InvokeAsync 部分)中,我提到 Dispatcher 在构造函数中创建了一个隐藏窗口专门用来接收消息,以处理通过 Invoke 系列方法调用的那些操作。然而 C 不满足于只看到这个结论,他更期望知道为什么 WPF 一定要创建这个隐藏的窗口。其实对这个问题我也不知道答案,但在和他深入的探讨以及不断寻找资料的过程中,我们逐渐得知了缘由。
walterlv
2023/10/23
3530
[ASP.NET MVC]如何定制Numeric属性/字段验证消息
对于一个Numeric属性/字段,ASP.NET MVC会自动进行数据类型的验证(客户端验证),以确保输入的是一个有效的数字,但是呈现在页面上的错误消息总是一段固定的文本:“The field {0} must be a number”,本篇提供一种解决方案使我们可以对此验证消息进行定制。[源代码从这里下载] 目录 一、针对Numeric属性/字段默认验证消息 二、默认的验证消息来源于何处? 三、通过自定义ModelValidatorProvider替换Numeri
蒋金楠
2018/02/07
1.3K0
[ASP.NET MVC]如何定制Numeric属性/字段验证消息
消息验证码MAC入门指南
简单来说,MAC就是随消息一起传输的标签或数据,可以通过MAC对消息进行验证,已确定消息是否被篡改过。
bowenerchen
2022/12/04
2.5K7
消息验证码MAC入门指南
面对短视频平台开发的发展,从营销的角度要怎么做?
电子设备、wifi、5G和互联网的发展,给短视频创造了良好的外部条件。以前手机内存不足,手机很卡,网络不好,wifi普及不全面,别说视频,就连图片打开都得半天。现在不一样了,现在这些都可以解决了,做个地铁都可以直接连个wifi看电影。手机容量也越来越大了,科技的发展,app的体验和流畅程度,已经超过了当天打开网页的程度了。这是造就短视频传播的重要载体。
布谷安妮
2019/11/02
4730
面对短视频平台开发的发展,从营销的角度要怎么做?
原来这样 4 步就能破解,再也不用手输验证码了!
• 目标网站开放凭据(验证码的“站点密钥”,站点url,可选:代理IP)由您(客户端)复制并提交给2captcha服务。您可以使用简单的Web开发人员工具找到它们。
double
2020/04/01
4K0
【行业】Fontcode算法可以找出隐藏在正常文本中的秘密消息
AiTechYun 编辑:nanan 无论是将秘密隐藏在信件的邮票下面还是用隐形墨水书写,人们总能找到一些巧妙的方法,利用他们懂得的技术来编写秘密信息。哥伦比亚大学的研究人员开展的新项目深入了对此的研
AiTechYun
2018/04/17
8330
【行业】Fontcode算法可以找出隐藏在正常文本中的秘密消息
微信隐藏功能,要彻底抛弃朋友圈了?
最近,微信8.0更新了了很多有意思的功能:全新的微信文章浮窗、下拉菜单改版、炸裂的特效、微信状态等。
吾非同
2021/02/05
5140
手把手丨输验证码输到崩溃?教你15分钟黑掉全球最流行的验证码插件
大数据文摘作品 编译:Katrine Ren、朝夕、钱天培 验证码这种东西真的是反人类。虽然它在保证账号安全、反作弊以及反广告有着至关重要的作用,但对于普通用户来说,输验证码很多时候实在是让人抓狂。 文摘菌18岁的时候帮朋友刷QQ空间留言就天天和验证码作斗争,前几天传一个视频又创下了连续7次输错验证码的记录。不过好在文摘菌最近发现,用机器学习破解简单验证码已经是妥妥的小事了。 今天,文摘菌就带来了一个15分钟黑掉世界上最受欢迎的验证码插件的小教程。欢迎开启新年第一黑。 先给大家介绍一下今天我们要黑的验证码
大数据文摘
2018/05/24
7130
点击加载更多

相似问题

jQuery重新验证正确输入时隐藏/删除错误消息

22

要隐藏错误消息(视图)

11

键入时静音HTML验证消息

10

角度验证-没有显示消息

13

隐藏字段验证消息

16
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档