У меня есть класс, подобный следующему - это часть библиотеки, и я вообще не могу его изменить (если бы я мог, я бы просто переписал его или создал подкласс в Java)
public class FirstClass
{
public FirstClass(SecondClass arg)
{
...
}
public ThirdClass aMethod()
{
...
}
...
}
Я хочу создать объект Javascript из этого объекта с помощью Rhino (поэтому нет комментариев о том, что JavaScript отличается от Java, пожалуйста, я знаю это), но переопределить метод "aMethod".
Так что на Java я бы сделал это ...
public class MySpecialFirstClass extends FirstClass
{
public FirstClass(SecondClass arg)
{
super(arg);
}
public ThirdClass aMethod()
{
ThirdClass toReturn = super.aMethod();
//My implementation goes here.
return toReturn;
}
...
}
Но я не могу сделать это в Javascript. Вещи, которые я пробовал до сих пор ...
function js_FirstClass(arg)
{
var temp = JavaAdaptor(FirstClass,
{
'<init>': FirstClass,
aMethod: function()
{
var toReturn = super.aMethod();
//Do stuff
return toReturn;
}
});
return temp;
}
Я тоже пробовал ...
var myClass = new FirstClass(secondClass);
myClass.aMethodOld = myClass.aMethod;
myClass.aMethod = function()
{
var toReturn = aMethodOld();
//Do stuff
return toReturn;
}
Есть еще предложения?