是否可以将对象列表(PhysicalComponent)传递到自定义服务,从而阻止我遍历所有PhysicalComponent?
实际上,我在M2DOC模板中进行了这样的迭代:
constructor(@Inject(DOCUMENT) {defaultView}: Document) {
this.width = defaultView ? defaultView.innerWidth : 0;
}
答案 0 :(得分:0)
您可以使用以下签名创建服务:
public SomeReturnType myService(List<PhysicalComponent> components) {
...
}
或
public SomeReturnType myService(Set<PhysicalComponent> components) {
...
}
或
public SomeReturnType myService(Collection<PhysicalComponent> components) {
...
}
那么您可以这样称呼它:
{m:self.eAllContents(pa::PhysicalComponent)->myService()}
箭头指示将集合传递给服务,点箭头指示在集合的每个元素上调用服务。
如果您使用集合列表作为第一个参数,则可能需要使用asSequence()或asOrderedSet():
{m:self.eAllContents(pa::PhysicalComponent)->asSequence()->myService()}
或
{m:self.eAllContents(pa::PhysicalComponent)->asOrderedSet()->myService()}