Collections 何时在Gradle中使用DomainObjectCollection和NamedDomainObjectCollection?

Collections 何时在Gradle中使用DomainObjectCollection和NamedDomainObjectCollection?,collections,gradle,Collections,Gradle,何时以及在什么情况下可以使用DomainObjectCollection和NamedDomainObjectCollection?你能给我举几个例子吗 从文档中我了解到,它们实现了java.util.Collection和 DomainObjectCollection是一个专门的集合,它添加了 修改能力 通知和实时筛选子集合 因此,它们是支持“活性”的JavaCollections。但如何从这种类型实例化对象呢 通过项目对象还是如何?例如,我看到有一些DefaultNamedDomainObje

何时以及在什么情况下可以使用DomainObjectCollection和NamedDomainObjectCollection?你能给我举几个例子吗

从文档中我了解到,它们实现了
java.util.Collection

DomainObjectCollection是一个专门的集合,它添加了 修改能力 通知和实时筛选子集合

因此,它们是支持“活性”的JavaCollections。但如何从这种类型实例化对象呢


通过
项目
对象还是如何?例如,我看到有一些DefaultNamedDomainObjectList类实现了NamedDomainObjectList接口,但它们是内部类。

只有
NamedDomainObjectContainer
s可以通过公共API(
project.container()
)实例化.

只有
NamedDomainObjectContainer
s可以通过公共API(
project.container()
)实例化。

gradle 5

new DefaultNamedDomainObjectList(
        MyNamedClass.class,
        new Instantiator() {
            @Override
            def <T> T newInstance(Class<? extends T> aClass, Object... objects) throws ObjectInstantiationException {
                project.objects.newInstance(aClass, objects)
            }
        },
        new DynamicPropertyNamer())
梯度5

new DefaultNamedDomainObjectList(
        MyNamedClass.class,
        new Instantiator() {
            @Override
            def <T> T newInstance(Class<? extends T> aClass, Object... objects) throws ObjectInstantiationException {
                project.objects.newInstance(aClass, objects)
            }
        },
        new DynamicPropertyNamer())