【发布时间】:2019-06-05 12:56:08
【问题描述】:
我有两个类,一个扩展另一个类。父类中的大多数函数要么返回自身(在修改调用函数的对象之后),要么返回相同类型的新对象。子类应该共享这些函数,但是它应该返回子类型的对象。
这个问题的明显解决方案是重写每个函数并将它们转换为子类型的对象,但我不想每次创建子类时都这样做。
我做了一些搜索,发现了一些使用通用函数的解决方案。然而,那些要么需要一个额外的Class<T> 参数,要么可能导致类型转换错误。
有没有一种方法可以在父类中创建一个函数,这样父类型或子类型的对象都可以返回自身或相同类型的对象?
【问题讨论】:
-
似乎您正在尝试制作通用构建器。这篇文章解释了一种方法:vyazelenko.com/2012/03/02/recursive-generics-to-the-rescue
标签: java generics return-type