从变量动态调用方法

Dynamically call methods from a variable

我在我的项目中使用这个 SDK:Pollexor

我想创建一个 generic/main 方法来接受来自其他方法的任何请求。

static String thumborGetURL(String alias, String imageUrl) {
    thumborUrlBuilder( alias, imageUrl )
            .crop( 299, 296, 301, 297 )
            .resize( 300, 300 )
            .toUrl()
}

private static ThumborUrlBuilder thumborUrlBuilder(String alias, String imageUrl) {
    Thumbor thumbor = Thumbor.create( 'http://localhost:8000', 'MY-SECURITY-KEY' )
    thumbor.buildImage( imageUrl )
}

static String thumborCrop(String alias, String imageUrl) {
    thumborGetURL( alias, imageUrl )
}

如何使 SDK 中的 .crop、.resize、.toUrl 和其他方法及其参数从 Map 类型的一个变量动态调用,例如?这可能吗?

如果您有方法的名称及其参数,您可以尝试以下操作:

def method(String a, String b) {
    println "a: $a, b: $b"
}

def args = ['c', 'd']
def name = 'method'

"$name"(*args)

如果列表的参数长度无效,将抛出异常。