扫码阅读
手机扫码阅读
泛型类的正确用法
166 2024-04-17
在准备Java基础知识的直播时,作者回顾了泛型在多线程任务基类中的应用,并提出了一个解决问题的思路。作者之前在这个基类中定义了一个泛型对象T,但是使用过程中并未发现其优势,反而出现了一些多线程锁的问题。
具体的问题在于,泛型对象T以前主要用于存储执行任务生成的标记,但这并没有带来预期的灵活性。作者的灵感来自于对不同多线程任务类中添加新属性的需求,如RequestThreadTime或UpdateSqlThread等,这些属性可以通过泛型T来代替。
作者决定将这个思路应用于现有的性能测试框架,修改所有的abstract类和实现类,以便更好地利用泛型。作为示例,作者分享了RequestThreadTimes类的代码,并指出对泛型的掌握对于框架改进起到了关键作用。
在RequestThreadTimes的实现中,作者尝试了多种继承和泛型声明方式,并最终确定了一种有效的写法。在这种写法中,父类中的泛型T被声明为HttpRequestBase类,这允许在子类中进行正常操作,但子类的泛型声明受到一定的限制。
文章还提到了类型转换的修改,特别是在标记方法中需要识别和处理不同类型的泛型对象。作者强调了对泛型深入理解的重要性,并通过实际的代码改进来展示了这一点。
本文首发于公众号「FunTester」,作者是知乎八级强者,文章也得到了腾讯云、开源中国和掘金社区的推荐。作者欢迎关注和交流,并声明禁止第三方擅自转载。
想要了解更多,点击
查看原文
FunTester的其他文章
基于代码的自动化和无代码自动化
在之前的文章AI如何影响测试行业中提到了随着更先进的技术进入由AI/ML支持的连续测试领域,组织尤其是测试从业人员常常正在争论哪种更好,是通过编程语言完成自动化测试还要采用无代码测试解决方案呢?
固定QPS异步任务功能初探
在之前文章Java自定义异步功能实践中,我仿造Go语言?
亿级日志队列回放性能测试初探
队列通常是软件设计模式中的基本组件。但是如果每?
物联网测试
在现在以及不远的未来家里的空调、冰箱房门可能有一个共同点:互联网连接。这种新现象被称为物联网。所有这些连接的硬件也由软件驱动的,这些软件应该经过软件测试。
固定QPS压测模式探索
最新的代码请移步我的GitHub,地址:https://github.com/JunManYuanLong/FunTester,gitee地址:https://gitee.com/fanapi/tester。
加入社区微信群
与行业大咖零距离交流学习
软件研发质量管理体系建设
白皮书上线