java如何在不使用instanceOf或getClass()的情况下知道类类型?
我有一个班级成员,由学生和员工继承。 我有另一个类PersonList,它有一个Person类型的列表,即list(元素可以是Student和Employee类型)
第三方API有两种重载方法,即
void display(Employee emp)
和void display (Student student)
当我迭代Person list时,我需要知道对象类型,以便调用适当的display()方法
我不想使用instanceOf或getClass()
# 1 楼答案
一般来说,这种情况下的第三方API设计得很糟糕。特别是如果你被允许改变它所依赖的类
但是无论如何,如果允许更改类,可以添加类似
displayMe
的方法(我假设您的第三方类名为PersonPrinter
)因为每个类都知道它是什么,所以它将从
PersonPrinter
中选择display
的正确版本现在您可以这样编写循环: