我希望将以下的
for
语句转化为Java 8流(即Stream<Class<?>>
)。理想的解决方案应该足够简单,我可以轻松地将其应用于多种遍历链表的情况(例如File.getParentFile()
,Component.getParent()
)。 Class<?> clazz;
Object value;
value = ...;
for (clazz = value.getClass(); clazz != null; clazz = clazz.getSuperclass())
...
我意识到用几行代码创建流并不比一个单独的 for
语句更简单。然而,使用流可以使 for
循环体更简单,因此流是可取的。
Stream.iterate(value.getClass(), Objects::nonNull, Class::getSuperclass)
。 - HolgerStream.iterate(ex, Throwable::getCause)
。 - Dudelilama