java流和重载方法
abstract class A {}
class B extends A {}
class C extends A {}
List<A> items = // objects of B,C types
items.stream.map(item -> build(item));
如何在构建方法中为类型B和C保留不同的逻辑。我尝试声明构建(BB)和构建(CC),因为我认为它会在运行时检查实际类型,但看起来它会检查声明的类型。我可以使用instanceof,但我认为应该有更好的方法。B、 C是实体bean,因此不能在那里添加我的逻辑
# 1 楼答案
如果不能向类
A
、B
和C
添加build()
方法,就不能使用多态性。因此,您必须基于instanceof
执行运行时if
语句(除非您有更好的指示符而不是实例类)