有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案

  1. # 1 楼答案

    如果不能向类ABC添加build()方法,就不能使用多态性。因此,您必须基于instanceof执行运行时if语句(除非您有更好的指示符而不是实例类)