我有一个功能:
void foo(Collection<? extends Baz> messages) {
如何确定集合中所有元素的最派生通用子类?
可能所有元素都扩展了Bar,Bar扩展了Baz.有些可能扩展Fuz,扩展Bar,但不是全部.在这种情况下,最派生的通用子类仍然是Bar.
最佳答案
迭代集合,并将每个元素转换为其层次结构中的类列表(例如Fuz-Bar-Baz-Object).
对于每个后续元素,classList.retain()都是相同操作的结果.
取结果列表的第一个元素.