Extending a Java class

Axel Dörfler axeld at pinc-software.de
Fri Sep 28 09:49:11 UTC 2018


Am 28/09/2018 um 11:34 schrieb Sundararajan Athijegannathan:
> It is hard to say what went wrong without looking at your full sample/test.
> 
> Openjdk wiki page explains Java.extend function is here:
> http://hg.openjdk.java.net/jdk/jdk/file/7bd8d6b011c9/src/sample/nashorn/resourcetrysuggester.js 

Thanks! This usage suggests that it should actually work.

Here is my full example stripped down to the bare minimum:

----------------8<----------------
var MatcherEditor = 
Java.type("ca.odell.glazedlists.matchers.AbstractMatcherEditor");

var filter = new (Java.extend(MatcherEditor)) {
		setEnabled: function(enabled) {
			if (enabled) {
				fireMatchNone();
			} else {
				fireMatchAll();
			}
		}
	};
filter.setEnabled(true);
----------------8<----------------

The error is:
TypeError: filter.setEnabled is not a function in <eval> at line number 13

For the Glazedlists class used, see here:
http://static.javadoc.io/net.java.dev.glazedlists/glazedlists_java16/1.10.0/ca/odell/glazedlists/matchers/AbstractMatcherEditor.html

Source:
https://github.com/glazedlists/glazedlists/blob/master/core/src/main/java/ca/odell/glazedlists/matchers/AbstractMatcherEditor.java

That looks like a bug to me. But if there's a workaround, I'll take it :-)

Kind regards,
    Axel Dörfler.


More information about the nashorn-dev mailing list