总结一下泛型的理解吧。
泛型的概念,类泛型、接口泛型、方法泛型,就不多说了。这篇文章主要讲的是泛型什么时候用,怎么用。
网上的很多教程里面都用了几个例子,
List<String> list = new ArrayList<String>();
List<Student> list = new ArrayList<Student>();
很多都用了这么个例子,我遇到了这么一个场景。下面是UML图,
红框中的两个类是我入参的两个参数,可以看到CommandAutoCompleteInteractionEvent 是GenericInteractionCreateEvent的子类,GenericInteractionCreateEvent 和 MessageReceivedEvent 是并行的两个子类。
所以我最终的方法是传入 Event,然后判断类型进行强转。但是感觉不是很完美,考虑其他方法,比如泛型。
但是参考了很多资料,以及实际修改代码验证,发现即使传入泛型也没有用。因为我最终要调用的是泛型这个类型中的一个方法,getMember这个方法,而这个方法是在各个子类里面的。因为没有继承下来的共性方法,所以没有办法使用方法,只能强转。
再来说一下上面的例子,list的例子,用了之后,很多都是之前用get(0)然后使用具体的方法类型,定义的时候就传入了。这是没问题的,应该get方法是list就有的。但是我上面的例子中,用的是子类的方法,所以没有办法传入泛型。
请各位指正,后续有其他思考会补充上来。