That is what I was trying to avoid. In the java side I'd like to have specific types `Bar` so i get type safety, compile time validation, etc... all the things you expect from a strongly typed language, and on Nashorn side I'd like to have the freedom of dynamic typed languages, also if my contract is already deployed I'd break the whole compatibility/contract by changing the method signatures to be Map.
I was trying to get my head around the dynalink stuff but sadly it does not apply to this problem. On Mon, Jun 20, 2016 at 2:58 PM, Sundararajan Athijegannathan < sundararajan.athijegannat...@oracle.com> wrote: > No, there are no such conversion hooks. > > But, if any of your Java methods accept java.util.Maps, you can pass > script objects. Also, if any of your Java methods accept List or Java > arrays, you can pass script arrays. > > var m = new java.util.HashMap(); > > m.putAll({ foo: 44 }); > > var l = new java.util.ArrayList(); > > l.addAll([44, 546, 676]); > > -Sundar > > On 6/20/2016 5:43 PM, Paulo Lopes wrote: > > Hi, > > > > > > I've been reading the documentation, wiki and the examples from Nashorn > and > > have a question that I cannot find a yes/no answer to. Say for example > that > > I've an application that leverages on Nashorn for JavaScript execution > but > > its core is in Java. In my Java code I've a interface like: > > > > interface Foo { > > > > void doSomething(Bar bar); > > > > } > > > > > > Now from Nashorn I'd like to invoke the method "doSomething" like: > > > > > > foo.doSomethin({key: 'value'}); > > > > > > As expected this won't work since Nashorn does not know how to cast from > > "JSObject" to "Bar" however I'd like to register somewhere/somehow (this > is > > what I don't know) a helper class/method/something where I could do > this. I > > also do not want to bring Nashorn API/types to Java to I'm not looking > for > > something like: > > > > > > class Bar implements JSObject { ... } > > > > > > Is this possible? and it is possible with JDK8? > > > > > > Thanks! > > Paulo > > -- Paulo Lopes www.jetdrone.com