javascript - java.lang.ClassCastException: jdk.nashorn.internal.objects.NativeArray cannot be cast to java.lang.Comparable -


while running javascript nashorn

var jsarray = [7,4,1,8,3,2];  var list = java.util.arrays.aslist(jsarray); java.util.collections.sort(list); list.foreach(function(el) { print(el) } );  

i got

exception in thread "main" java.lang.classcastexception: jdk.nashorn.internal.objects.nativearray cannot cast java.lang.comparable @ java.util.collections.sort(collections.java:170) 

so way use java collections in javascript?

update:

thanks attila, not both js , jjs script produce same output

var jsarray = [1,2,3,4];  jsarray.foreach(function(el) { print(el) } );    var jsarray = [1,2,3,4]; //var list = java.util.arrays.aslist(jsarray); var list = java.to(jsarray, java.type('java.util.list')) list.foreach(function(el) { print(el) } );  

using java.util.arrays.aslist create array single element being js array. js arrays aren't java arrays...

instead of java.util.arrays.aslist, use java.to(jsarray, java.type('java.util.list')). resulting list backed js array, changes 1 reflected other. can convert js array java array java.to(jsarray) (which equivalent java.to(jsarray, java.type('java.lang.object[]'). if want go through array conversion step, can use java.util.arrays.aslist(java.to(jsarray));.

in general, nashorn convert js arrays java arrays automatically in cases java method signature specifies array parameter, don't have use java.to() explicitly lot. arrays.aslist(t...) unfortunately vararg method, there's ambiguity how handle argument.


Comments

Popular posts from this blog

javascript - jquery or ashx not working -

opencv - DataType<cv::detail::deriv_type>::depth what is it used for -

python 3.x - Mapping specific letters onto a list of words -