Groovy ambigu surcharge de la méthode

Matin, je vois que les mêmes questions ont été posées une couple de fois, mais ils semblent tous pour les projets compilés ou ceux impliquant Gradle. De toute façon, j'obtiens le message d'erreur

Caused by: javax.script.ScriptException: groovy.lang.GroovyRuntimeException: Ambiguous method overloading for method java.math.BigDecimal#<init>.
Cannot resolve which method to invoke for [null] due to overlapping prototypes between:
[class [C]
[class java.lang.String]

quand je lance ce petit script

String amt = "1"
String currency = "GBP"
String targetCurrency = "USD"

def settlement = crossCurrencyClient.crossCurrency(amt, currency, targetCurrency)

return transfer.amount * new java.math.BigDecimal (settlement)

qui est lui-même qui déclenche ce

import groovyx.net.http.HTTPBuilder
import groovyx.net.http.RESTClient
import groovy.json.JsonBuilder
import groovy.json.JsonOutput
import static groovyx.net.http.Method.GET
import static groovyx.net.http.ContentType.JSON

public class CrossCurrencyClient {

    def issuingAddress = "rBycsjqxD8RVZP5zrrndiVtJwht7Z457A8"
    String source = "rUR5QVHqFxRa8TSQawc1M6jKj7BvKzbHek" 
    String multiplier = ""
    def resURL = "http://url-string.com/v1/"
    def resourceIdClient = new RESTClient("${resURL}")

    public String generateUUID() {
        def resourceId = resourceIdClient.get(path:"uuid").data.uuid
        println "resourceId = " + resourceId
        return resourceId
        }

    public String crossCurrency(String amt,String currency,String targetCurrency) {

        def http = new HTTPBuilder( "${resURL}accounts/${source}/payments/paths/${source}/${amt}+${targetCurrency}+${issuingAddress}?source_currencies=${currency}+${issuingAddress}" 
)

        http.request(GET,JSON) {

            response.success = { resp, json -> 
                if(json.success){
                    multiplier = json?.source_amount?.value
                }
            }

            response.failure = { resp ->
                println "Request failed with status ${resp.status} and message : ${resp.message}"
                return "Something went wrong"
            }
        }
    return multiplier    
    }
}

CrossCurrencyClient crossCurrencyClient = new CrossCurrencyClient()

Je ne peux pas savoir quel est le problème ici. Aussi loin que je peux voir toutes les méthodes sont effectués correctement et il n'y a pas d'ambiguïté. Quelqu'un peut-il point à l'endroit où je vais mal?

comme BigDecimal a plusieurs constructeurs je suppose que je ne peux pas résoudre, lequel, par conséquent l'erreur

OriginalL'auteur Horsebrass | 2015-10-29