我想注释Vaadin的HasComponents类,该类扩展了Iterable。我可以这样注释iterator()-Method:
class com/vaadin/ui/HasComponents
iterator
()Ljava/util/Iterator<Lcom/vaadin/ui/Component;>;
()L1java/util/Iterator<L1com/vaadin/ui/Component;>;
这样我就可以使用经典的for循环进行迭代
for (Iterator<Component> it = content.iterator(); it.hasNext();) {
Component c = it.next();
doSmoething(c);
}
但是当我尝试像这样的foreach循环
for(Component c : content) {
doSomething(c);
}
我从Eclipse得到警告:
Null type safety (type annotations): The expression of type 'Component' needs unchecked conversion to conform to '@NonNull Component'
大概是因为
HasComponents extends Component, Iterable<@NonNull Component>
是否可以通过外部注释添加此注释,或者还有其他方法?
答案 0 :(得分:0)
如果您的最终目标是简化循环,并且您正在使用Java 8或更高版本,则可以通过Streams和Lambda通过以下方式将forEach(..)与HasComponents结合使用:
layout.forEach(component -> { ... do something with component ... });