Перегрузить метод Java с помощью Javascript Rhino - PullRequest
3 голосов
/ 10 октября 2011

У меня есть класс, подобный приведенному ниже, и я хотел бы переопределить оба метода, используя Javascript Rhino, какие-либо предложения?

Заранее спасибо !!

class MyClass() {
  public void method1(); 
  public void method2(); 

  MyClass() {
    method1();
    method2();
  } 
}

Ответы [ 2 ]

2 голосов
/ 10 октября 2011

В последний раз, когда я использовал его, Rhino в комплекте с JDK не поддерживал расширяемые классы (только реализующие интерфейсы SAM), но Rhino в Mozilla поддерживает переопределяющие классы.Проверьте JavaAdapter: https://developer.mozilla.org/en-US/docs/Mozilla/Projects/Rhino/Scripting_Java#The_JavaAdapter_Constructor

1 голос
/ 10 октября 2011

Хотя я не пробовал этого в среде Android, Rhino поддерживает конструкцию JavaAdapter - как видно по адресу: https://developer.mozilla.org/en-US/docs/Mozilla/Projects/Rhino/Scripting_Java#The_JavaAdapter_Constructor, которая позволяет вам создавать объект JS, определяющий правильные методы, а затем создавать эффективнооболочка между одним суперклассом и / или одним или несколькими интерфейсами.В этом случае что-то вроде:

var o = {
  method1: function() {
    print('method1');
  },
  method2: function() {
    print('method2');
  }
}

//This line should instantiate the child class, with
//method1 + method2 overridden called within the constructor
var instanceThatIsAMyClass = new JavaAdapter(com.example.MyClass, o);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...