helloMethod
является методом экземпляра, и поэтому он требует установки ссылки this
, когда она называется .Ваш первый пример не делает этого во время звонка.Ваш второй пример пытается это сделать, но есть небольшая ошибка, которую можно легко сделать в JavaScript: ссылка this
в
$wnd.setText = function(from) {
this.@com.example.my.Class::helloMethod(Ljava/lang/String;)(from);
};
указывает на саму функцию.Чтобы избежать этого, вам нужно сделать что-то вроде:
var that = this;
$wnd.setText = function(from) {
that.@com.example.my.Class::helloMethod(Ljava/lang/String;)(from);
};
Или лучше:
var that = this;
$wnd.setText = $entry(function(from) {
that.@com.example.my.Class::helloMethod(Ljava/lang/String;)(from)
});