You can't "take" java method away from object and then "apply" it later (like you do with Java reflection). Also, there is not "Function" like "apply" for Java methods. If you switch on method names and have multiple call sites, i.e., one each for each "hot" methods and have default for the rest, that should help.

-Sundar

On Monday 21 July 2014 09:04 PM, Marc Downie wrote:
On Mon, Jul 21, 2014 at 6:11 AM, A. Sundararajan<
[email protected]> wrote:

Will this sample of any help to you?

http://hg.openjdk.java.net/jdk9/dev/nashorn/file/
34a783929a67/samples/jsobj_example.js


It is! Many thanks.

What stopped me getting there myself? Well I fell into this trap: assigned
methods from the fallback class to temporary variables doesn't work

var ArrayList = Java.type('java.util.ArrayList')
var al = new ArrayList()

al.size() // WORKS, returns zero
var sz = al.size // works, sz is not undefined or null
sz() // throws ClassCastException

Obviously in your code you just do the lookup multiple times, but out of
interest: is there anything I can do with sz to call the underlying method?
What's it even for?

best,

Marc

Reply via email to