Class.forName的Gradle等效项

时间:2015-08-18 13:17:30

标签: gradle

是否有Class.forName的gradle等价物或更多gradle / groovy方式。

我想在gradle中实现的目标如下:

    for(String name : new String[]{
            MyImpl1.class.getName() ,
            MyImpl2.class.getName() ,
            MyImpl3.class.getName()}) {
        MyInterface myInterface = (MyInterface)Class.forName(name).newInstance();
        myInterface.configure();
    }

MyImpl1,MyImpl2和MyImpl3实现MyInterface

1 个答案:

答案 0 :(得分:0)

根据Guillaume LaForge's(Groovy语言的主要贡献者之一)answer here

def name = "java.lang.Integer"// Fully qualified class name
def s = ("$name" as Class).parseInt("10")
println s

但我想如果你想要更好地控制特定的类加载器,那么Java方式Class.forName("Foo", true, this.getClass().getClassLoader())也可以在Groovy中运行。