I am having trouble properly extending Java classes with Rhino.

I am using the Mozilla version of Rhino and not the builtin version
with Java 6.

------------------------ Java code to extend
---------------------------------
public class Test {

        public int value = 4;

        public void foo() {
                System.out.println(this.value);
        }

}

------------------------ Javascript code
---------------------------------

// Wrap the Java class into an adapted Javascript constructor
function Parent() {
        return new JavaAdapter(Test, this);
}

// Define a constructor for Child()
function Child() {
}

// Copy the parent's prototype into the child prototype
Child.prototype = new Parent();

// Override the java version of foo()
Child.prototype.foo = function() {
                this.value = 1;

                // call the "super" java version of this method
                Parent.prototype.foo.call(this);
}

// Create an instance and test method
var t = new Child();
        t.foo(); <------ Exception gets thrown here

----------- Error message from Rhino ------------------------

Java method "foo" cannot be assigned to. (#14)

This code works when modified to be totally Javascript based. I don't
believe it's an issue with the Javascript part. Am I going about this
the wrong way? Is it possible to actually extend Java classes?

Thank you for you help.
_______________________________________________
dev-tech-js-engine-rhino mailing list
[email protected]
https://lists.mozilla.org/listinfo/dev-tech-js-engine-rhino

Reply via email to