泛型的个人理解

文章探讨了泛型在Java中的使用,特别是在处理不同子类对象时的局限性。作者提到,尽管可以使用泛型如List<String>和List<Student>来提高类型安全性,但在需要调用特定子类方法如getMember时,由于缺乏共性接口,仍需进行类型转换。举例说明了泛型在列表操作中的有效应用,但无法解决所有类型的对象方法调用问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

总结一下泛型的理解吧。

泛型的概念,类泛型、接口泛型、方法泛型,就不多说了。这篇文章主要讲的是泛型什么时候用,怎么用。

网上的很多教程里面都用了几个例子,

List<String> list = new ArrayList<String>();
List<Student> list = new ArrayList<Student>();

很多都用了这么个例子,我遇到了这么一个场景。下面是UML图,
在这里插入图片描述
红框中的两个类是我入参的两个参数,可以看到CommandAutoCompleteInteractionEvent 是GenericInteractionCreateEvent的子类,GenericInteractionCreateEvent 和 MessageReceivedEvent 是并行的两个子类。

所以我最终的方法是传入 Event,然后判断类型进行强转。但是感觉不是很完美,考虑其他方法,比如泛型。

但是参考了很多资料,以及实际修改代码验证,发现即使传入泛型也没有用。因为我最终要调用的是泛型这个类型中的一个方法,getMember这个方法,而这个方法是在各个子类里面的。因为没有继承下来的共性方法,所以没有办法使用方法,只能强转。

再来说一下上面的例子,list的例子,用了之后,很多都是之前用get(0)然后使用具体的方法类型,定义的时候就传入了。这是没问题的,应该get方法是list就有的。但是我上面的例子中,用的是子类的方法,所以没有办法传入泛型。

请各位指正,后续有其他思考会补充上来。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值