Получение метода Java, возвращающего значение из рукописного JS на GWT - PullRequest
1 голос
/ 21 ноября 2011

Я пытаюсь прочитать возвращаемое значение метода Java и сохранить его в переменной JS. Согласно документации, это должно сделать работу:

Собственный Java-метод, который возвращает значение:

static public double getValue() {
    return 21.0;
}

Создание ссылки для вызова родной Java из рукописного JS:

$wnd.showValue=function() {
    val=$entry(@whateverpackage.thisclass::getValue());
    alert("Value: "+val);
}

И, наконец, в простом JS:

showValue();

Вывод, показанный в окне предупреждения, следующий:

Value: function(){try{return hh(c,this,arguments)}catch(b){throw b}}

Я предполагаю, что вместо получения возвращаемого значения он получает функцию, которую GWT-компилятор производит сам, и выводит ее в переменную. Что в этом плохого? Как я уже сказал, в официальной документации есть очень похожий пример, поэтому так и должно быть. Заранее спасибо.

1 Ответ

4 голосов
/ 21 ноября 2011

Вы должны добавить дополнительную пару скобок после ссылки на функцию. Первая пара содержит сигнатуру функции (описывающую типы параметров). Теперь вы не выполняете функцию, а вместо этого передаете фактическую функцию в $entry()

Так что измени это

val=$entry(@whateverpackage.thisclass::getValue());

к этому

var val = $entry(@whateverpackage.thisclass::getValue()());

Кстати, я добавил ключевое слово var , чтобы предотвратить возможные конфликты области действия.

...