Reflection 如何在groovy项目的类路径中找到接口的所有实现?

Reflection 如何在groovy项目的类路径中找到接口的所有实现?,reflection,groovy,Reflection,Groovy,我正在实现一个接口,现在我想在类路径中获得这个接口的所有实现。这是可能的还是我应该做些别的事情呢?你可以用来做这类事情,即;要查找org.codehaus.groovy中实现迭代器接口的所有类,可以执行以下操作: @Grab( 'org.slf4j:slf4j-api:1.7.5' ) @Grab( 'org.reflections:reflections:0.9.9-RC1' ) import org.reflections.* new Reflections( 'org.codehaus.

我正在实现一个接口,现在我想在类路径中获得这个接口的所有实现。这是可能的还是我应该做些别的事情呢?

你可以用来做这类事情,即;要查找
org.codehaus.groovy
中实现
迭代器
接口的所有类,可以执行以下操作:

@Grab( 'org.slf4j:slf4j-api:1.7.5' )
@Grab( 'org.reflections:reflections:0.9.9-RC1' )
import org.reflections.*

new Reflections( 'org.codehaus.groovy' ).getSubTypesOf( Iterator ).each {
    println it.name
}
其中打印:

org.codehaus.groovy.runtime.StringGroovyMethods$1
org.codehaus.groovy.runtime.SwingGroovyMethods$7
org.codehaus.groovy.util.ArrayIterator
org.codehaus.groovy.runtime.metaclass.ConcurrentReaderHashMap$KeyIterator
org.codehaus.groovy.control.CompilationUnit$9
org.codehaus.groovy.runtime.SqlGroovyMethods$ResultSetMetaDataIterator
org.codehaus.groovy.runtime.SwingGroovyMethods$1
org.codehaus.groovy.util.ManagedLinkedList$Iter
org.codehaus.groovy.runtime.SwingGroovyMethods$3
org.codehaus.groovy.runtime.metaclass.MetaClassRegistryImpl$2
org.codehaus.groovy.runtime.SwingGroovyMethods$6
org.codehaus.groovy.ant.FileIterator
org.codehaus.groovy.runtime.IOGroovyMethods$3
org.codehaus.groovy.runtime.DefaultGroovyMethods$DropWhileIterator
org.codehaus.groovy.runtime.DefaultGroovyMethods$TakeIterator
org.codehaus.groovy.runtime.DefaultGroovyMethods$3
org.codehaus.groovy.runtime.SwingGroovyMethods$5
org.codehaus.groovy.runtime.SwingGroovyMethods$2
org.codehaus.groovy.runtime.metaclass.ConcurrentReaderHashMap$HashIterator
org.codehaus.groovy.runtime.metaclass.ConcurrentReaderHashMap$ValueIterator
org.codehaus.groovy.runtime.XmlGroovyMethods$1
org.codehaus.groovy.runtime.SwingGroovyMethods$4
org.codehaus.groovy.runtime.IOGroovyMethods$2
org.codehaus.groovy.runtime.ReverseListIterator
org.codehaus.groovy.runtime.DefaultGroovyMethods$TakeWhileIterator