我有一个名为 PageObject 的父类(super class),然后是两个继承 PageObject 的名为 AlphaPage 和 BetaPage 的子类。 函数“selectPage()”将返回这些页面之一,但要返回的具体页面只有在运行时才知道。
函数的返回对象应该是什么,这样才能避免将子类之一强制转换为函数调用的返回值?
最佳答案
如果调用者想要特定类型,则他们将必须进行转换,因为信息仅在执行时已知。基本上,您应该返回 PageObject
。
当然,如果调用者不需要任何特定于 AlphaPage
或 BetaPage
的东西 - 如果他们可以只使用在 PageObject 上声明的方法(可能是抽象的)
,那么就不需要强制转换了。那将是理想的——使用多态性来处理差异。不过,这实际上取决于调用者需要做什么。
关于java - 如果 java 函数的返回值是仅在运行时已知的两个可能对象之一,我的 java 函数应该返回什么对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12482522/